微信公众平台如何刷新 access token
我使用oauth获得用户授权时,先获得了access_token,得到这些参数:{"access_token":"ACCESS_TOKEN","expires_in":7...
我使用oauth获得用户授权时,先获得了access_token,得到这些参数:
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":xxxxxxxxxxxxxxxxxxxxxx,
"openid":"OPENID",
"scope":"SCOPE",
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}
然后我想刷新 access token,这样就不用每次都让用户授权 了,可是我在刷新 access token的URL上填写上上面的这个refresh_token,就是xxxxxxxxxxxxxxxxx的时候,提示这个refresh_token 是非法值,请问这是怎么回事? 展开
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":xxxxxxxxxxxxxxxxxxxxxx,
"openid":"OPENID",
"scope":"SCOPE",
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}
然后我想刷新 access token,这样就不用每次都让用户授权 了,可是我在刷新 access token的URL上填写上上面的这个refresh_token,就是xxxxxxxxxxxxxxxxx的时候,提示这个refresh_token 是非法值,请问这是怎么回事? 展开
展开全部
其实这个问题,我也很诧异。不清楚这个刷新一步,到底有啥作用。
可能是考虑用户如果存在名称/头像之类的,修改之后的更新问题吧。
我是这样操作的
使用 静默授权 (Scope为snsapi_base ),获取到 openid / unionid.
查询系统内是否存在此用户(根据 : openid / unionid )
若不存在:
引导用户进入授权页面同意授权, 获取 code
通过code换取网页授权access_token
存储信息入库。信息指:
通过code换取的json信息。
access_token
expires_in
refresh_token
openid
unionid
继续第四步,获取用户信息。
若存在:
查询数据库中,access_token并验证
官方文档,授权的最下面有验证的方法。
验证结果
有效:直接获取用户信息。
无效:刷新access_token然后,继续获取用户信息。
无效:更新刷新后的信息。
获取到用户信息,更新入库!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询