第三方登录----Oauth协议处理流程(QQ)

为了让网站更快接入,腾讯提供了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
返回

你可能感兴趣的:(第三方登录)