微信小程序开发----业务场景

本文介绍了微信小程序中refresh_token的工作机制及其在过期情况下的处理策略,确保用户无感刷新登录状态。同时,详细讲解了腾讯位置服务的使用,包括地理位置的获取、逆地址解析、地点搜索和重新定位等功能,为小程序开发中的位置相关业务提供指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01.refresh_token介绍

 

  • token:
    • 作用:在访问一些接口时,需要传入token,就是它。
    • 有效期:2小时(安全)。
  • refresh_token
    • 作用: 当token的有效期过了之后,可以使用它去请求一个特殊接口(这个接口也是后端指定的,明确需要传入refresh_token),并返回一个新的token回来(有效期还是2小时),以替换过期的那个token。
    • 有效期:14天。(最理想的情况下,一次登陆可以持续14天。)

安全还是体验

  • 从安全角度来看 token 必须要具有一定的时效性,失效后的 token 不再能标识用是登录状态。
  • 另外也要考虑用户的体验,例如用户在 token 失效的前 1 分钟打开小程序,用户浏览小程序 1 分钟后 token 失效,用户不得不再次去登录,这样的用户体验是极差的。
  • 为了既能保证安全性又兼顾用户体验,咱们需要能够自动刷新 token 的方法,即 refresh_token。

 refresh_token工作机制

 

 

  1. 用户在首次完成登录时会分别得到 token 和 refresh_token
  2. 当 token 失效后(例如2小时之后),调用接口A会返回 401 状态码(这是与后端约定好的规则)
  3. 检测状态码是否为 401,如果是,则携带refreshToken去调用刷新token的接口
  4. 刷新 token 的接口后会返回新的 token 和 refreshToken
  5. 把401的接口A重新发送一遍

注意:
refresh_token也是有过期时间的,只不过一般会比token过期时间更长一些。这就是为啥如果某个应用我们天天打开,则不会提示我们登录,如果是有几周或更长时间去打开时,会再次要求我们登录。
refresh_token一个更常见的名字叫token无感刷新。

 02.refreshToken功能-基本实现

if (data.code === 401) {
    const app = getApp()
    // 调用接口获取新的 token
    const res = await http({
      url: '/refreshToken',
      method: 'POST',
      header: {
        Authorization: 'Bearer ' + app.getToken('refreshToken'),
      }
    })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值