【问题标题】:Zend OpenId provider with custom usersZend OpenId 提供者与自定义用户
【发布时间】:2011-06-15 21:46:21
【问题描述】:

我有一个带有自制用户模块的 Web 应用程序。用户存储在 MySQL 数据库中,密码为二进制编码(默认为 sha256,但我们支持其他算法;例如,密码存储为 MD5 字符串)。

到目前为止一切顺利,但现在我们希望将我们的应用程序作为 OpenId 提供者,从我们的用户模块提供帐户。

由于我们使用 Zend 框架,我猜想使用数据库后端(即 OurNamespace_OpenId_Provider_Storage_Db 扩展 Zend_OpenId_Provider_Storage)编写自定义存储适配器应该不会那么难,但是 Zend_OpenId_Provider::login(id, password) 被委托给 Zend_OpenId_Provider_Storage::checkUser(id , md5(id.password))

所以在 OurNamespace_OpenId_Provider_Storage_Db::checkUser() 中,第二个参数(密码)作为 md5 字符串提供,包括我无法在我们自己的用户表中检查的盐 (openid)。密码的存储方式不同...

解决此问题/解决方法的常见/最佳做法是什么?

提前致谢!
// 罗兰

【问题讨论】:

  • 您能否分享一些您如何访问 OpenId 提供程序的代码?

标签: php zend-framework openid


【解决方案1】:

我和你有同样的问题。由于我们不能仅仅扩展 Zend_OpenId_Provider 并覆盖 checkUser(),我以一种丑陋的方式修复了它。

我将 Zend_OpenId_Provider 复制到 NameSpace_OpenId_Provider,编辑了 checkUser(),然后改用它。

PS:有人提交了一个错误,也许我们会从中看到一些东西。 http://framework.zend.com/issues/browse/ZF-10232

【讨论】:

    猜你喜欢
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 2013-02-09
    • 2018-12-09
    • 1970-01-01
    • 2022-08-04
    • 2011-12-26
    相关资源
    最近更新 更多