微信开发文档第三步:刷新access_token这个有什么用

http://mp.weixin.qq.com/wiki/...

微信文档中说的刷新access_token有什么用?要获取到用户的openid不是每次都要先获得code(唯一的吧?),再用code去获取access_token,再获取到openid,那把access_token刷新是什么意思?请微信开发的大神指导下、

阅读 7.9k
6 个回答

网页授权 access_token 与普通 access_token 的区别在于网页授权 access_token 是针对用户的, 即: 每个用户的网页授权 access_token 是不一样的.

网页授权 access_token 是可以用来多次刷新同一个用户的个人信息的.

网页授权 access_token 被多次使用的场景:

  • 用户第一次授权登录后, 在服务器保存用户信息和用户的网页授权 access_token, 外加用户的网页授权 refresh_token, 同时在微信浏览器 local storage 中保存用户的网站 ID;
用户的 openId 属于敏感信息, 不应该保存在浏览器中!
  • 用户再次进入相同页面时, 从微信浏览器 local storage 中读取用户 ID;
  • 服务器根据用户 ID 找到用户的 openId, 以及 access_token, 注意这时候不需要用户重新授权, 可以直接用 access_token (必要时调用问题中提到的 "第三个接口") 刷新用户的个人信息;

以上就是 access_token 和 refresh_token 的使用场景, 主要实现的是免授权登录, 根据 refresh_token 的有效期设置, 可以保持最长 30 天的免授权期, 30 天过后, 用户重新进入网站, 则必须重新点击 "同意" 按钮进行授权.

access_token有过期时间,7200秒。过期了就要重新获取。

因为token是有过期时间的,如果长时间用一个token,过期了,就无法正常请求了

access_token 设计这个值时,为了考虑安全问题,就如session一样.有生命周期.若长时间未访问,超过access_token生命周期,系统则认为已过期.

注意看这一段:

关于网页授权access_token和普通access_token的区别

  1. oauth的access_token:第一次进入你的网站时进行一次授权,获取用户的信息(openid)。

  2. 普通access_token:调用微信的rest接口时,微信服务器都需要进行安全认证。将此access_token带在url参数中。

现在各种语言都有相应的sdk帮忙获取“普通access_token”,并做超时自动重新获取。如果是用来做项目的话,可以不用造轮子了,github上面一大堆。除了access_token的功能外,还封装了各个接口的各种sdk。

  1. access_token每日请求次数有要求

  2. 获取用户的access_token,需要用户授权

  3. access_token时效短

推荐问题
宣传栏