申请appid,appkey,回调地址(申请时填写的回调地址,重要!)
qq互联申请地址:https://connect.qq.com/manage.html,成功后查看一下两个参数
qqAppID = ‘qqAppID ‘;
qqAppkey = ‘qqAppkey ‘;
其实就是给你要实现QQ登录的地方绑定一个onclick点击事件
如:给如图示图标绑定一个onclick点击事件,在对应函数里写一个http请求去服务器端处理QQ登录(安全考虑)
response_type的值固定为code;
client_id的值为申请的appid;
display的值为pc(pc端需要传);
redirect_uri的值为申请时填写的回调地址;(注意:需要将url进行编码!!!)
state值是用来防止CSRF攻击的,自己随机产生一段字符串此值
scope值需要的请求
利用window.open在新窗口打开此网址。若发现未打开,很有可能是被拦截了。
请求成功后,会打开QQ登录界面,如图示:
当用户成功授权登录后,会跳转到上述指定的回调地址里,并携带参数code和state值。如:code=code&state=state
code值即为你要获取到的Authorization Code值
state值即为上述你随机产生的字符串
此时已经走到了回调地址里
根据回调产生的地址,获取code值,state值
判断携带的state参数值和你随机产生的字符串是否相等,相等才能往下走!
grant_type的值固定为authorization_code;
client_id的值为申请的appid;
client_secret的值为申请的appkey;
redirect_uri的值为申请时填写的回调地址;(注意:需要将url进行编码!!!)
code值为获取到的Authorization Code值
(可以手动请求一下该网址,看看返回的是什么)
access_token=access_token&expires_in=expires_in&refresh_token=refresh_token
access_token即为我们要获取到access_token值
expires_in即为access_token值的有效期
refresh_token,忽略。
https://graph.qq.com/oauth2.0/me?access_token="+ access_token+”&unionid=1
access_token值为获取到的Access Token值
unionid所有平台互联唯一id(可选)
callbackc ( {"client_id": "*client_id*", "openid": "*openid**"} )
client_id即为appid
openid即为我们要获取到的openid值
这里我们要拿参数感觉没有头脑的返回不规则的串,所以要对当前进行处理
jsonStr = resultTWO.replace('callback( ','');
jsonStr = jsonStr.replace(' );','');
jsonStr = JSON.parse(jsonStr);
此值与用户QQ号一一对应,不会改变。因此,可以将此值存入数据库,与网站账号进行绑定。一般来说,若QQ用户第一次授权登录,应让他先进行自己网站的账号注册,注册成功以后就可以直接通过QQ进行登录。
https://graph.qq.com/user/get_user_info?access_token=“ + access_token+ “&oauth_consumer_key=” + qqAppID + “&openid=” + qqOpenid
access_token值为上述获取到的access_token值
oauth_consumer_key值为申请的appid
openid值为获取到的openid值
看官方的文档我们知道
nickname为用户的昵称
figureurl_qq_1为用户不同尺寸的QQ头像url
gender为用户性别
本文地址:https://www.zhuimengzhu.com/details/136.html
转载地址:暂无
转载说明:转载时请在文首注明来源zhuimengzhu.com 及教程作者,并附本文链接。谢谢各位编辑同仁配合。zhuimengzhu 保留追究相应责任的权利。