微信公众平台如何刷新 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 是非法值,请问这是怎么回事?
展开
 我来答
CIO_sam
2015-07-11 · TA获得超过131个赞
知道答主
回答量:76
采纳率:100%
帮助的人:40.1万
展开全部

其实这个问题,我也很诧异。不清楚这个刷新一步,到底有啥作用。

可能是考虑用户如果存在名称/头像之类的,修改之后的更新问题吧。


我是这样操作的


  1. 使用 静默授权 (Scope为snsapi_base ),获取到 openid / unionid.

  2. 查询系统内是否存在此用户(根据 :  openid / unionid )

  3. 若不存在:

    1. 引导用户进入授权页面同意授权, 获取 code

    2. 通过code换取网页授权access_token

    3. 存储信息入库。信息指:

      1. 通过code换取的json信息。

      2. access_token

      3. expires_in

      4. refresh_token

      5. openid

      6. unionid

    4. 继续第四步,获取用户信息。

  4. 若存在:

    1. 查询数据库中,access_token并验证

      1. 官方文档,授权的最下面有验证的方法。

    2. 验证结果

      1. 有效:直接获取用户信息。

      2. 无效:刷新access_token然后,继续获取用户信息。

      3. 无效:更新刷新后的信息。

  5. 获取到用户信息,更新入库!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式