点击这里给我发消息 QQ登录
【原创】 第三方登录之QQ登录(二)——OAuth2.0处理流程介绍(以QQ登录为例)
栏目:php  作者:力涛  阅读:(581)

为了让网站更快接入,腾讯提供了JS SDK的接入方案,具体点击这里或者点击这里进行查看。


不过也可以自己写代码,当然你需要了解QQ的OAuth2.0的处理流程(Web Server Flow)。

OAuth2.0的处理流程:点击这里查看官方Wiki。

1.授权:获取授权码Authorization Code 

说明:第一步QQ必须得到要登录系统的授权信息,如果授权全成功,则会跳转到回调地址,同时授权码以参数形式,追加回调地址上。


当然还有一些其他参数,具体详情看官方介绍

 实例:
https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101137684&redirect_uri=http%3a%2f%2fmfxuan.free.800m.net%2flogin.jsp&state=1&scope=get_user_info,get_info

返回:

http://mfxuan.free.800m.net/login.jsp?code=xxxx12BBB0345xxxxxx68196E5C2xxxx&state=1

2. 登录:通过Authorization Code获取Access Token

说明:获取网址中的code值,这个就是Authorization Code,通过它,可以获取访问令牌。这个访问令牌,事实上是给登录系统用的,主要是允许访问QQ的授权服务。(注意:不要向别人泄漏Access Token,因为它有3个月时效


 详细请看官方介绍

实例:

https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=101137684&client_secret=xxxxx24b9da14xxxxxc2997xxxxxxxxx&code=xxxx12BBB0345xxxxxx68196E5C2xxxx&redirect_uri=http%3a%2f%2fmfxuan.free.800m.net%2flogin.jsp

返回:

3. 获取用户openid

说明:先说一下openid,它是此网站上或应用中唯一对应用户身份的标识,与QQ号一一对应。网站或应用可将此ID进行存储,便于用户下次登录时辨识其身份,或将其与用户在网站上或应用中的原有账号进行绑定。有了它以后就可以确定当前登录的QQ,获取到QQ登录用户的基本信息了。(注意:不要向别人泄漏OpenID


实例:

https://graph.qq.com/oauth2.0/me?access_token=11111111111111111111111111111111 

返回:

4. 调用OpenAPI获取各种信息


点击API列表。里面有每个API的使用说明。当然前提是你的应用或网站有这个api的授权信息才可以。点击“应用管理”中的“API管理”,可以看到所有已授权和未授权的API。


作为演示,我这里选择的是获取用户信息api:get_user_info

 

实例:

https://graph.qq.com/user/get_user_info?access_token=11111111111111111111111111111111&oauth_consumer_key=101137684&openid=333333333333333333333333333

返回




昵称
邮箱
域名
  记住 通知博主
验证码