在小程序中 token 的处理

控制是否弹出自己的微信名 type

<!-- type="nickname" 控制是否弹出自己的微信名 -->

  <van-field 

  bindblur="updateNickName"

  center 

  label="昵称" 

  input-align="right" 

  placeholder="请输入昵称" 

  model:value="{{nickName}}" />

通过页面栈更改 my/index.js 中的值,调用刷新

includes 判定数组中是否有符合条件的

    // 通过页面栈更改
    const pages = getCurrentPages()
    console.log('页面栈更改', pages)

    // 当页面栈中的 route 中有 /my/index 时才执行更改刷新
    if(pages[0].route.includes('/my/index')) {
      pages[0].setData({nickName})
    }

token:

作用:在访问一些接口时,需要传入token,就是它。

有效期:2小时(安全)

refresh_token

作用: 当token的有效期过了之后,可以使用它去请求一个特殊接口(这个接口也是后端指定的,明确需要传入refresh_token),并返回一个新的token回来(有效期还是2小时),以替换过期的那个token。

有效期:14天。(最理想的情况下,一次登陆可以持续14天。)

// 响应拦截器
http.intercept.response = async ({statusCode,data,config}) => {
console.log('响应拦截器',statusCode,data,config)

  // 处理401
  const app = getApp()
  if(data.code === 401){
   
    // 用 refreshToken 发请求
    const res = await http({
      url:'/refreshToken',
      method:'post',
      header:{
        Authorization:'Bearer '+app.getToken('refreshToken')
      }
    })
    console.log('refreahToken得到的',res)

    // 保存 token
    app.setToken('token',res.token)
    app.setToken('refreshToken',res.refreshToken)

    // 重发请求
    // assign 重新赋值
    config = Object.assign({},config, {
      header: {
        Authorization:'Bearer '+res.token
      }
    })
    // 返回值
    return http(config)
  }

优化:

文件上传的操作

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在uniapp,可以使用uni.request方法向服务器发送HTTP请求,获取游客登录的token。一般来说,游客登录的token是由服务器生成的,需要先向服务器发起请求,获取到token后再进行后续操作。 以下是一个示例代码,用于向服务器请求游客登录的token,并将其保存在本地缓存: ```javascript // 在页面调用该函数,请求游客登录的token function loginAsGuest() { uni.request({ url: 'https://example.com/guest/login', // 替换为服务器接口地址 method: 'POST', success: function (res) { // 将token保存在本地缓存,以便后续使用 uni.setStorageSync('token', res.data.token); } }); } ``` 在页面调用loginAsGuest函数即可向服务器请求游客登录的token,并将其保存在本地缓存。后续的请求可以在请求头携带该token进行身份验证。例如: ```javascript // 发送需要身份验证的请求 function sendAuthenticatedRequest() { let token = uni.getStorageSync('token'); // 获取保存在本地缓存token uni.request({ url: 'https://example.com/api/data', // 替换为需要身份验证的接口地址 method: 'GET', header: { 'Authorization': 'Bearer ' + token // 在请求头携带token进行身份验证 }, success: function (res) { // 处理请求成功的响应数据 } }); } ``` 以上代码仅为示例,实际应用需要根据具体情况进行调整。同时,需要注意保护游客登录的token,避免被恶意获取和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值