Функциональность Oracle apex для отправки пользователям опции для установки пароля

Я разрабатываю приложение для продажи билетов и использую настраиваемую аутентификацию, используя функцию ниже.

create or replace FUNCTION f_val_leave_user_issue(p_username IN VARCHAR2,
                                            p_password IN VARCHAR2)
  RETURN BOOLEAN IS
  lv_char CHAR(1);
  lv_cnt NUMBER;
BEGIN
  SELECT 'x'
  INTO   lv_char
  FROM   p_it_people
  WHERE  upper(p_username) = upper(person_username)
  AND    p_password = person_password;
  apex_util.set_authentication_result(0);
  RETURN TRUE;

EXCEPTION
  WHEN OTHERS THEN
    apex_util.set_authentication_result(4);
    RETURN FALSE;
END f_val_leave_user_issue;

На данный момент он берет имя пользователя и пароль из таблицы p_it_people, которую я использую на своей странице входа.

Могу ли я настроить его дальше так, чтобы всякий раз, когда в p_it_people создавался новый пользователь, этому пользователю предлагалось установить свой собственный пароль, и после настройки этот пароль автоматически сохранялся в таблице p_it_people ??


person Velocity    schedule 28.04.2020    source источник
comment
Не в этой функции, нет. Вы можете встроить эту логику в страницу входа. Кстати, вы не должны хранить пароли пользователей в виде обычного текста.   -  person Tony Andrews    schedule 28.04.2020


Ответы (1)


Убедитесь, что пароли не сохраняются в базе данных в виде открытого текста. Я рекомендую прочитать это сообщение в блоге: https://blogs.oracle.com/apex/custom-authentication-and-authorization-using-built-in-apex-access-control-a-how-to

Вы сохраняете только хеш-значение пароля в базе данных, и каждый раз, когда пользователь входит в систему, вам нужно хешировать его пароль и сравнивать два хеша.

Сброс пароля просто позволяет конечному пользователю изменить свой сохраненный хэш-пароль.

person Salim Hlayel    schedule 09.05.2020