这里的google\qq\sina\github等登录模块,是怎么实现的?


这里的google\qq\sina\github等登录模块,是怎么实现的?

有没有相关PHP代码整合分享?谢谢~

php oauth

IceMoon 12 years, 10 months ago

这种借用第三方用户信息登录的本质还是需要在自己网站创建一个账号来登录,只不过这个账号相关信息(用户名等)是系统来创建。具体是实现是这样的:创建2张表,一张就是记录自己网站注册用户信息表,另外一个用来记录第三方登录成功返回的用户唯一标示符和用户信息表中的ID的对应关系:


 userinfo表:userid,email,username,password; 
partner表:userid,partner_userid,partner_type。

partner表中的userid字段与表userinfo中的userid字段对应, partner_userid 是第三方接口登录之后,第三方返回的用户ID, partner_type 是第三方类型(qq,gmail,github,weibo 等等)。 用户通过第三方登录成功之后,返回一个 partner_id 给你的网站,你通过这个 partner_id partner_type partner 表去查找是否存在记录,如果存在,则获取对应记录的 userid ,通过这个 userid 登录系统。如果不存在,则系统自动创建一个用户,将信息插入到 userinfo 表,然后将 userid partner_id 插入到表 partner .

愛吃芝士的貓 answered 12 years, 10 months ago

Your Answer