appid 应用唯一标识 在OAuth2.0认证过程中,appid的值即为oauth_consumer_key的值。
appkey 密钥 访问用户资源时用来验证应用的合法性。在OAuth2.0认证过程中,appkey的值即为oauth_consumer_secret的值
第一步:
qq按钮跳转地址:
[YOUR_APPID]&redirect_uri=[YOUR_REDIRECT_URI]&scope=[THE_SCOPE]
response_type:必须字段,授权类型,此值为code
client_id:必须字段,appid的值
redirect_uri:必须字段,授权成功后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心。注意需要将url进行urlencode字符串编码
state:必须字段,client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。
scope:可选,用户的授权,填写多个接口名称,用逗号隔开,参考:列表
【建议控制授权项的数量,只传入必要的接口名称,因为授权项越多,用户越可能拒绝进行任何授权。】
第二步:
获取code的值
$code = $_GET['code']
[appid]&client_secret=[appkey]&code=[$code]&redirect_uri=[回调地址]
grant_type: 必须 授权类型,此值固定为“authorization_code”。
client_id: 必须 申请QQ登录成功后,分配给网站的appid。
client_secret: 必须 申请QQ登录成功后,分配给网站的appkey。
code: 必须 上一步返回的authorization code。
如果用户成功登录并授权,则会跳转到指定的回调地址,并在URL中带上Authorization Code。
例如,回调地址为,则跳转到:
http://?code=520DD95263C1CFEA087******
注意此code会在10分钟内过期。
redirect_uri: 必须 与上面一步中传入的redirect_uri保持一致。
在回调地址中获取Access Token
如果成功返回,可以在回调地址中获取到access_token 注意:expires_in是该access token的有效期,单位为秒
可以通过 file_get_contents("第二步拼接的url") 字符串转换成数组的形式 获取access_token 的值;
第三步:获取用户的openid
{获取的access_token}
返回值:callback( {"client_id":"YOUR_APPID","openid":"YOUR_OPENID"} );
openid是此网站上唯一对应用户身份的标识,网站可将此ID进行存储便于用户下次登录时辨识其身份,或将其与用户在网站上的原有账号进行绑定。
第四步:
列表
以get_user_info接口为例:获取登录用户的昵称、头像、性别
{获取access_token}&oauth_consumer_key={appid}&openid={openid}&format=json
$data = file_get_contents($url);
$user_data = json_decode($data,true);
第五步:
登陆成功:跳转地址
阅读(9402) | 评论(0) | 转发(0) |