Yii,自定义用户验证,使用外部框架 API
Posted
技术标签:
【中文标题】Yii,自定义用户验证,使用外部框架 API【英文标题】:Yii, custom user validation, using external framework API 【发布时间】:2013-05-29 01:36:43 【问题描述】:你好 php 和 Yii 朋友,
我认为对于有更多 Yii 经验的人来说,这不是一个真正的挑战。 任何参考或一般想法都将意味着很多,因为我对 Yii 还很陌生。 提前感谢您的观看!
场景:
Yii web 应用程序和用户验证的自定义场景问题基于不是用户在本地数据库中而是外部站点数据库中的存在,它自己的验证和很好的覆盖公共访问API。
我考虑在 Yii 应用程序和外部 API 之间创建桥接模块,该模块将提供用于为成员用户创建特定 Yii 模型和视图的数据。
但是,为了让这个模型和视图只对用户/成员公开,我必须在cUrl
的帮助下创建一个自定义验证部分,并将我获得的数据作为外部 API 验证函数的返回类型。
我从外部 API 用户验证中获得的示例数据:
[result] => success
[userid] => 2
[passwordhash] => 04462efbd433dbb66ca25b67145a1848ed9e1044
问题: 如何根据上面数组中的值自定义 Yii 用户验证?
【问题讨论】:
用findByPk
方法创建一个模型类来检索数据。然后像任何其他数据库模型一样使用 UserIdentity 中的模型。
@Imre 是的,感谢 Imre,所以要创建一个不使用 db 连接,而是与外部 API 的连接并用检索到的数据填充其字段并使用该数据进行验证的自定义模型?
【参考方案1】:
您还需要在注册后验证用户是否存在,例如在每次登录期间。所以你应该:
-
编写调用远程 API 并确定用户是否有效的应用程序组件。
编写一个自定义验证器类,调用此组件进行验证。请参阅documentation,您想编写自己的类来扩展
CValidator
。
编写附加代码,在用户登录后调用验证组件。
【讨论】:
谢谢@DCoder,探索解决方案,我们取得了一些突破,做了一些成功的测试,但仍在探索组件解决方案......以正确的方式完成它以上是关于Yii,自定义用户验证,使用外部框架 API的主要内容,如果未能解决你的问题,请参考以下文章
创建通过外部 API 进行身份验证的自定义身份验证提供程序?
Symfony 5 / 使用 API 编写自定义身份验证总是返回我无效的凭据