同事搞了个qq第三方登录,学习下.
qq第三方登录(qq oAuth2.0),在oauth的协议的基础上实现的(新浪,wx等一些第三方登录都遵循这个原则),第三方分网站与移动应用
网站接入:总体流程
QQ登录OAuth2.0总体处理流程如下:
Step1:申请接入,获取appid和apikey;
Step2:开发应用,并设置协作者帐号进行测试联调;
Step3:放置QQ登录按钮;
Step4:通过用户登录验证和授权,获取Access Token;
Step5:通过Access Token获取用户的OpenID;
Step6:调用OpenAPI,来请求访问或修改用户授权的资源。
1.申请接入
主要申请appid与appkey
appid-应用的唯一标识。在OAuth2.0认证过程中,appid的值即为oauth_consumer_key的值。
appkey:appid对应的密钥,访问用户资源时用来验证应用的合法性。在OAuth2.0认证过程中,appkey的值即为oauth_consumer_secret的值。
申请有2个重要的参数,域名-在什么网站显示第三方登录图标,回调地址-登录回调url(在此url中处理相关业务逻辑,比如绑定相关账号等等,此处命名为xx.callback.do)
2.java后台处理
下载java sdk中有个qqconnectconfig.properties更改里面的app_id,app_key,redirect_url(回调地址,与申请的写的保持一致),放在项目资源目录下
a.获取authorize code
前端点击登录回调url处理
String url = new Oauth().getAuthorizeURL(request);
//https://graph.qq.com/oauth2.0/authorize?client_id=***&redirect_uri=**.callback.do&response_type=code&state=***&scope=get_user_info
response.sendRedirect(url);
其中scope指的需要授权的相关内容,此处只需要用户相关信息,在qqconnectconfig.properties中配置
重定向一个url()后