移动应用微信登录开发指南 (2)

获取第一步的code后,请求以下链接获取access_token:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

参数说明

参数是否必须说明
appid     应用唯一标识,在微信开放平台提交应用审核通过后获得  
secret     应用密钥AppSecret,在微信开放平台提交应用审核通过后获得  
code     填写第一步获取的code参数  
grant_type     填authorization_code  

返回说明

正确的返回:

{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE",
"unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"
}
参数说明
access_token   接口调用凭证  
expires_in   access_token接口调用凭证超时时间,单位(秒)  
refresh_token   用户刷新access_token  
openid   授权用户唯一标识  
scope   用户授权的作用域,使用逗号(,)分隔  
unionid   当且仅当该移动应用已获得该用户的userinfo授权时,才会出现该字段  

错误返回样例:

{"errcode":40029,"errmsg":"invalid code"}

刷新access_token有效期

access_token是调用授权关系接口的调用凭证,由于access_token有效期(目前为2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新,access_token刷新结果有两种:

1. 若access_token已超时,那么进行refresh_token会获取一个新的access_token,新的超时时间;
2. 若access_token未超时,那么进行refresh_token不会改变access_token,但超时时间会刷新,相当于续期access_token。

refresh_token拥有较长的有效期(30天),当refresh_token失效的后,需要用户重新授权。

请求方法

获取第一步的code后,请求以下链接进行refresh_token:

https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

参数说明

参数是否必须说明
appid     应用唯一标识  
grant_type     填refresh_token  
refresh_token     填写通过access_token获取到的refresh_token参数  

返回说明

正确的返回:

{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
参数说明
access_token   接口调用凭证  
expires_in   access_token接口调用凭证超时时间,单位(秒)  
refresh_token   用户刷新access_token  
openid   授权用户唯一标识  
scope   用户授权的作用域,使用逗号(,)分隔  

错误返回样例:

{"errcode":40030,"errmsg":"invalid refresh_token"}

注意:


1、Appsecret 是应用接口使用密钥,泄漏后将可能导致应用数据泄漏、应用的用户数据泄漏等高风险后果;存储在客户端,极有可能被恶意窃取(如反编译获取Appsecret);
2、access_token 为用户授权第三方应用发起接口调用的凭证(相当于用户登录态),存储在客户端,可能出现恶意获取access_token 后导致的用户数据泄漏、用户微信相关接口功能被恶意发起等行为;
3、refresh_token 为用户授权第三方应用的长效凭证,仅用于刷新access_token,但泄漏后相当于access_token 泄漏,风险同上。

建议将Appsecret、用户数据(如access_token)放在App云端服务器,由云端中转接口调用请求。

第三步:通过access_token调用接口

获取access_token后,进行接口调用,有以下前提:

access_token有效且未超时;

微信用户已授权给第三方应用帐号相应接口作用域(scope)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwyzs.html