收藏
回答

调用获取token接口太频繁?

import {
  wxlogin
} from "../../../apis/modules/user"
import {GetToken} from '../../../apis/modules/foodcard'
const app = getApp()
Page({
  data: {
    formData: {},
    chkBody: {}
  },
  //获取token
  getToken(){
    console.log('11111111')
   GetToken({
     data: {
       Appid: idxConfig.Appid,
       Secretkey: idxConfig.Secretkey
     }
   }).then(res => {
    if (res.status == 200 && res.success) {
      // app.gD.token = res.token
      wx.setStorageSync('foodcardToken', res.token)
     }
   })
 
  },
  login: function (e) {
    wx.login({
      success (res){
        if(res.code){
           wxlogin({
            data:{...data,code:res.code}
          }).then(async res => {
            if (res.code === 10000) {
              await _this.getToken()
              console.log('登录时获取token')
            } else {
              getApp().gD.fnShowToast("手机号或密码错误")
            }
          }).catch(err => {
            console.log(err)
          })
        }
      }
    })    
  },
  autoLogin(){
    console.log('自动login.js中的密码',wx.getStorageSync('PinCode'))
    let app = getApp()
    const self = this
    wx.login({
      success(res) {
        if (res.code) {
          wxlogin({
            load_txt:'登录中...',
            mask:true,
            data: {              
              code: res.code
            }
          }).then(async res1 => {
            if (res1.code == 10000) {
              //把token存入本地
             await self.getToken()
            }
          })
        } else {
          app.gD.fnShowToast('登录失败!' + res.errMsg)
        }
      }
    })
  },
  onLoad: function () {
    this.autoLogin()
  }
})

这是login.js简化的代码,请问我在小程序登录界面获取的token并存储在storage中,下次token过期了再去重新登录获取,这样写有什么问题吗?
目前,后端反馈获取token的接口调用的太频繁,导致后端经常断掉,请问大家有什么解决办法吗?
回答关注问题邀请回答
收藏

1 个回答

  • 八九
    八九
    2023-05-31

    你应该让后端去存token,而不是前端存储,这样的话,你每次进入小程序都是重新请求了,而且每个用户都是重新请求

    2023-05-31
    有用
    回复 8
    • swy
      swy
      发表于移动端
      2023-05-31
      是的,目前就是这样。那前端这块有啥解决办法没?
      2023-05-31
      回复
    • swy
      swy
      发表于移动端
      2023-05-31回复swy
      因为我的其他接口也要用到token的值,后端存储token我前端也得获取。
      2023-05-31
      回复
    • 八九
      八九
      2023-05-31回复swy
      后端存啊,你前端获取后端返回的,你每次前端获取肯定频繁
      2023-05-31
      回复
    • swy
      swy
      2023-05-31回复八九
      后端存和前端存有啥区别?
      2023-05-31
      回复
    • 八九
      八九
      2023-06-01回复swy
      你前段每次都请求获取token,肯定频繁啊
      2023-06-01
      回复
    查看更多(3)
登录 后发表内容