这里的google\qq\sina\github等登录模块,是怎么实现的?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

这里的googleqqsinagithub等登录模块,是怎么实现的?

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

展开
收起
落地花开啦 2016-06-15 15:15:22 1977 0
1 条回答
写回答
取消 提交回答
  • 落地花开啦
    喜欢技术,喜欢努力的人

    这种借用第三方用户信息登录的本质还是需要在自己网站创建一个账号来登录,只不过这个账号相关信息(用户名等)是系统来创建。具体是实现是这样的:创建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.

    2019-07-17 19:39:22
    赞同 展开评论 打赏
问答分类:
PHP
问答标签:
相关产品:
问答排行榜
最热
最新
相关电子书
更多
QQ移送页面框架优化实践
立即下载
QQ移动页面框架优化实践
立即下载
低代码开发师(初级)实战教程
立即下载