我有一个 Apex 应用程序,当前有一个登录页面,其中包含我手动输入到名为 CSD_LOGIN_USERS 的表中的凭据。 我可以使用名为 CSD_LOGIN_AUTH 的函数使其工作。
所以现在所有用户都可以使用我定义的密码登录应用程序,但他们无法更改它,而且显然,即使另一个管理员更新了密码,我也可以在表中看到他们的密码。
我怎样才能:-
执行更新密码的提示?
防止用户在登录时再次被提示更改密码(除非他们决定更改)?
加密/隐藏密码列中的密码?
我的APEX版本是22.1
切勿将实际密码(无论是否加密)存储在数据库中。永远不应该有办法直接查看或解密实际的密码值。相反,使用 DBMS_CRYPTO 包或 JavaScript 中的哈希函数(如 SHA256)来生成密码的单向哈希值以存储在数据库中。当用户登录时,对他们提供的密码进行哈希处理,并将其与表中存储的哈希值进行比较。
实现更改密码功能,就像实现一个屏幕来更改数据库中的任何其他数据一样。将新密码通过哈希函数传递以获取要存储的值。