向用户发送选项以设置密码的 Oracle apex 功能

Oracle apex functionality to send users option to set password

我正在开发票务应用程序并使用以下函数使用自定义身份验证。

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 table 中获取用户名和密码,我在登录页面中使用了这些用户名和密码。

我能否进一步自定义它,以便每当在 p_it_people 中创建新用户时,都会提示该用户设置自己的密码,设置后,该密码会自动存储在 p_it_people 中table??

您需要确保不要将数据库中的密码以明文形式保存。 我建议阅读此博客 post:https://blogs.oracle.com/apex/custom-authentication-and-authorization-using-built-in-apex-access-control-a-how-to

您只将密码的哈希值保存在数据库中,每次用户登录时,您都需要对其密码进行哈希处理并比较两个哈希值。

重置密码只是允许最终用户更改他保存的哈希密码。