Сбросить пароль в oracle апекс - PullRequest
0 голосов
/ 21 июня 2020

Итак, я работаю над пользовательской аутентификацией в oracle apex. При этом я хочу добавить функцию сброса пароля, поэтому я использовал функцию Pl/SQL для сброса пароля, сначала она проверяет пользователя по электронной почте, а затем отправляет ссылку на электронную почту, поскольку перенаправляет пользователей, сбрасывающих область пароля. там он показывает эту ошибку . Долгое время эта ошибка отображается, и я не знаю, как ее исправить ... Это пользовательский код аутентификации

    create or replace function  MY_AUTHENTICATION
    (p_username in VARCHAR2,
    p_password in VARCHAR2)
    return BOOLEAN
    is
        l_user USER_TABLE.user_name%type := upper(p_username);
        l_hash USER_TABLE.set_password%type;
        begin
            select user_name, set_password 
            into l_user, l_hash
            from USER_TABLE
            where user_name = p_username and set_password = p_password;
                RETURN TRUE;
    EXCEPTION
        WHEN NO_DATA_FOUND
        THEN
            RETURN FALSE;                 
    end;

, а это мой код сброса пароля

    BEGIN
    
        APEX_CUSTOM_AUTH.SET_USER('COMIDA');
        APEX_CUSTOM_AUTH.LOGIN(
                                    P_UNAME => 'COMIDA',
                                    P_PASSWORD =>'1234567890',
                                    P_SESSION_ID => :SESSION,
                                    P_APP_PAGE  => :APP_ID
                 );
    
    APEX_UTIL.RESET_PASSWORD(
                                    P_USER_NAME => UPPER(:P15_USER_NAME),
                                    P_OLD_PASSWORD => NULL,
                                    P_NEW_PASSWORD=> :P15_PASSWORD,
                                    P_CHANGE_PASSWORD_ON_FIRST_USE => FALSE    
                        );
        
     
    APEX_AUTHENTICATION.LOGOUT(:SESSION,:APP_ID);
    END;

1 Ответ

0 голосов
/ 22 июня 2020

У вас есть пользователи в настраиваемой таблице, и вы хотите изменить пароль Oracle пользователей APEX? Эти пользователи хранятся в схеме APEX_00000 по умолчанию (независимо от установленной вами версии APEX).

Итак, чтобы изменить пароль в вашем приложении вашей настраиваемой таблицы, вы должны сделать это

update USER_TABLE
set password = l_hash
where user_name = l_user;

Не путайте учетные данные APEX с пользовательской аутентификацией.

...