我已将simpleopenidselector和lightopenid添加到我的Yii Web应用程序中,它会对用户进行身份验证,并返回带有openid数据的URL.下一步是使用OpenID提供程序中的数据在Yii中创建新标识以登录用户.如何用Yii完成?
另外,我认为我需要创建一个openid表来存储openid,还需要将用户添加到我的用户表中.如果用户已拥有帐户,则将openid添加到其用户帐户以防止多个帐户.
有没有人用Yii实现这一切?如果是这样,我会对它是如何完成感兴趣.
我很困惑.
我能够使用LightOpenID使openid登录有点工作.
我所做的就是openid_identity" https://www.google.com/accounts/o8/id?id=xxx".非常令人失望:我也希望得到这个电子邮件地址.
即我需要登录(这是openid所做的)并知道用户用来登录的谷歌帐户的电子邮件地址.
有功能,$openid->getAttributes()但我得到的只是一个空数组:我猜谷歌不会给我任何其他东西openid_identity.
所以我猜我应该用OAuth,对吧?我对此毫无头绪.我只发现了可怕的和困惑的文件,要么假装解释一切(我做的意思是一切),或者不解释任何东西 都.
是的,当然我已经尝试查看之前的帖子,就像我在google上搜索一样.请再读一遍上一段.
最近,我注意到,在我的数据库中存储所产生的身份时,谷歌有时会返回一个不同的身份为同一个用户,造成两人数据库条目为单个用户.
经过一番研究后,我发现Google使用$ openid-> realm以及用户名来创建身份.默认情况下,领域成为您网站的URL.使用LightOpenID,我应该将$ openid-> realm设置为使得生成的Google身份保持一致,以便我可以将它们存储在我的数据库中?我可以将'领域'设置为我喜欢的任何东西吗?或者它必须与我的URL相关?
Janrain的PHP OpenID库和LightOpenID的PHP实现之间有什么区别.
一个比另一个更安全吗?
正确的OpenID实现必须:
覆盖加密签名的检查
检查随机数
亚迪斯发现
我猜测Janrain的图书馆确实满足了所有这些要求,因为谷歌推荐了这个库,但LightOpenID实现了1和2.
我正在尝试扩展LightOpenID PHP库以"发现"身份提供者需要定向身份.这应该很容易,因为图书馆编写得非常好并且非常干净,但我不知道如何识别这些类型的提供者.我试过几件事:
提供商如何将自己标识为需要"定向身份"身份验证?当然,在某个地方有一个精心定义的规范.
有谁知道我可以在这里找到更多?
我试图使用LightOpenId为我的网站登录/注销用户.这工作正常,但我的问题是"如何跟踪用户登录/注销状态并采取相应的操作".
我希望用户只有在用户登录时才能访问我的网站功能,并在用户注销时重定向到登录页面.
提前致谢.
我正在使用LightOpenID在我的PHP Web应用程序中启用Google身份验证.
但是,当我在本地服务器上测试相同时,我收到以下错误
( ! ) Fatal error: Uncaught exception 'ErrorException' with message 'You must have either https wrappers or curl enabled.' in C:\wamp\www\speakerdb\openid.php on line 94
( ! ) ErrorException: You must have either https wrappers or curl enabled. in C:\wamp\www\speakerdb\openid.php on line 94
Call Stack
#   Time    Memory  Function    Location
1   0.0006  366848  {main}( )   ..\index.php:0
2   0.0034  648640  LightOpenID->__construct( ) ..\index.php:4
这在我的远程服务器上运行良好.我将在我的应用程序的每个页面中使用LightOpenID来检查用户是否已登录.我尝试给"localhost"作为域名,但得到相同的错误.
我启用了curl而不是我的wamp服务器但是当启用curl时,带有LightOpenID的页面不会运行.