淘东电商项目(28) -QQ授权登录实现思路

由于QQ授权登录需要申请账号、以及需要提供外网的地址,备案号等等。「淘东项目」所以就不讲解QQ授权了,其它的授权登录都大同小异,下面来说说实现思路。

OAuth2.0其授权验证流程示意图如下(图片来源:OAuth2.0协议草案V21的4.1节
在这里插入图片描述

首先我们一QQ授权登录为例子,熟悉一下OAuth2.0的基本思路:

  1. 生成QQ联合登陆授权链接,会跳转到授权界面(如下图:): url:https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=申请后的clientId&redirect_uri=申请授权成功后跳转的url
    在这里插入图片描述

  2. (腾讯)用户选择账号后,使用重定向方式跳转回调地址 http://跳转的url 传递一个code参数

  3. code作用授权码,使用code参数获取accessToken

  4. 使用accessToken获取用户信息(openid、头像、QQ年龄之类)

代码思路如下:

1.编写授权链接接口

2.编写授权回调接口

  • 获取到授权码
  • 使用授权码获取accessToken
  • 使用accessToken获取用户openid

3.使用openid查询数据库user信息表中是否有关联

SELECT * FROM user where QQ_OPENID='4130A96EDE4187C8FD6BB055CC542B40';
  • 如果使用openid能够查询用户信息,说明用户已经绑定成功,自动实现登陆
  • 如果使用openid没有查询到用户信息的话,说明用户没有绑定账信息,跳转到关联账号页面
  • 关联成功账号之后,将openid修改为对应的账号信息。
update user set QQ_OPENID ='4130A96EDE4187C8FD6BB055CC542B41' where USER_ID='111';

当然,腾讯已经封装好了SDK了,详细说明可以参考开发者文档:http://wiki.connect.qq.com/

发布了2669 篇原创文章 · 获赞 5063 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/qq_20042935/article/details/104800068
今日推荐