Zend_Auth并在UI上动态更改用户详细信息

Kim*_*nce 5 php zend-framework

当我的用户登录时,我在UI上显示他们的详细信息(姓名,电子邮件).当他们更新他们的个人资料时,我想显示更新的详细信息,而无需用户注销并重新登录.

通过视图助手从Zend_Auth检索UI详细信息.Zend_Auth在会话中存储"身份"细节.

我该如何更新会话中的详细信息?:

  • 我正在考虑从数据库中检索用户的登录凭据,并使用它们再次调用Zend_Auth-> authenticate().问题是我不知道密码,只有它是md5哈希.我可以考虑一个新的方法,reauthenticate(),它配置适配器绕过md5和salt,但这听起来很费力.

  • 我正在考虑直接写入Zend_Auth会话命名空间,但这听起来像是一个麻烦的方法?

你遇到过类似的问题吗?你是怎么处理的呢?

非常感谢您的想法!

Kim*_*nce 0

这是我暂时解决这个问题的方法。还不确定这是否是最好的解决方案:

  • 为 Zend_Auth 创建包装器
  • 包含 getAuthAdapter($raw) 方法
  • 根据 $raw 的值以不同方式配置适配器

    if (false === $raw) {
        $this->_authAdapter->setCredentialTreatment('SHA1(CONCAT(?,salt))');
    } else {
        $this->_authAdapter->setCredentialTreatment();
    }
    
    Run Code Online (Sandbox Code Playgroud)