调用获取token接口太频繁?
发布于 2 年前 作者 dxia 11110 次浏览 来自 问答
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的接口调用的太频繁,导致后端经常断掉,请问大家有什么解决办法吗?
2 回复

这个token是谁的token?单位没有技术负责人?

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

回到顶部