背景
我们有一个web应用程序,它以通用应用程序用户的身份登录到Oracle数据库中,但是由于历史原因,我们将所有用户用户存储为Oracle数据库用户(我们通过Oracle数据库进行身份验证,将它们登录到web应用程序中)。我们还有其他的Oracle表单,这些应用程序更直接地使用数据库用户(它们不能被删除)。
我试图允许用户通过web应用程序通用用户更改自己的密码。
问题
如何授予web应用程序通用用户更改特定用户密码的能力,而不授予其更改超级用户密码的能力?如果有人偷了网络应用程序的证件,我们想要限制损坏。
Oracle数据库通过以下方法支持这一点:
alter user user123
我试着像这样加密密码,
RegisterController:
'password' => encrypt($data['password']),
然后我需要在忘记密码模块中解密密码。
MyController:
$pass = decrypt($password);
到现在为止,一切都运行得很好。
但当我尝试登录时,它会抛出以下消息:
These credentials do not match our records.
我想我需要在Login控制器上进行更改,但不能确定确切的位置。
我该怎么做?
如果我想强制用户在第一次登录数据库时更改密码,如何创建用户? 当我使用像这样的代码时 CREATE USER myUser WITH PASSWORD 'mypass' VALID UNTIL current_date ERROR: syntax error at or near "current_date"
LINE 1: ...REATE USER myUser WITH PASSWORD 'mypass' VALID UNTIL current_da...