goldlike 2012-08-29 08:29:04 6561次浏览 5条回复 0 0 0

想在yii框架上做人人,新浪等的第三方的登录,本身的登录是用了Yii框架的loginform ,包括后面的登录认证,session ,cookie等都是系统生成,现在我从第三方比如人人授权以后,可以得到在人人登录的个人的uid ,用户名等信息,现在想用用户名登录自己系统,但是yii本身的认证像是 isguest等都无法通过第三方用户的认证,

小白新人 对yii不是很了解,我想要这个用户跟其他登录用户一样,进行其他操作应该怎么做,我试着写了这个用户的yii::app->user->setState(“username”,$username)可是无法通过Yii认证,

有什么办法可以让这样的用户避过认证,像其他登录用户一样操作

  • 回复于 2012-08-29 10:14 举报

    建议可以先用纯php写个接口,然后再整合Yii。
    参考:
    http://wiki.dev.renren.com/wiki/首页

  • 回复于 2012-08-29 10:53 举报

    差不多了,没仔细研究下ucenter怎么实现的,给了个临时解决方案,从人人那弄来的,给第三方用户建了一个临时账户,用第三方账户模拟了Yii框架的登陆过程,让yii自动写session、cookie,功能实现了,不过呵呵,不咋滴

    觉得很赞
  • 回复于 2012-08-29 10:54 举报

    第三方登陆是要这样做的。
    用户使用第三方openid登陆后,api会告诉你该会员在其网站上的信息,其中会包含一个唯一的用户标识,
    你要做的,就是记录下这个用户标识,来确认用户的身份。
    但是很明显,这个用户标识,可能是这个的openid,也有可能是另一个的,总之是需要对应 一个本站的用户信息。这样,你就需要把Openid绑定你自身的会员。
    会员在使用第三方账号登陆时,通过api确认用户身份后,即可通过该应用的openid来找到本站会员记录,
    这个时候,自己写一个登录流程,仅为第三方登陆服务。这个流程,不再需要密码认证即可。其过程和你之前做的一样。
    就OK了。

  • 回复于 2012-08-29 12:21 举报

    过程类似,我原来做过Ucenter的整合,应该是用oauth直接写网站cookie、两个同时认证,也就是一个中间插件,两边登陆可以用一个密码!!!! 现在这种第三方登陆功能有点弱了........ 再说Yii自动生成的对loginform的检测,写session、cookie保留了些什么信息?伪造的cookie完全通不过

    百度的API 能不能做本地测试?

  • 回复于 2012-08-29 16:29 举报

    是这样的,第三方的应用,自己写自己的,你完全不用管。
    实际情况是,你自己本站有一个用户,(如果第三方应用第一次登陆,则自动创建,或让用户补充资料,一般是让用户再补充资料,如昵称,密码等,以后用户就可以直接使用本站账号登陆),访客通过第三方登陆后,你会要求他绑定本账账号,如果没有,则提示创建(也可自动创建,这个是本站的身份)。
    接下来最重要一点。绑定本站账号与第三方应用的openID账号之间关联。 这一步是重点。
    以后当用户使用第三方登陆时,则可以参数openID,来找到本站账号,直接使用该账号做登陆认证流程即可(实无非就是查询会员的时候,不做密码验证而已。)

    如果想要更多功能,记录第三方应用的授权key,则可以代替用户发微博什么的。
    但是目前,第三方的授权都有时间限制。。这个需要注意一下。

您需要登录后才可以回复。登录 | 立即注册