checkToken.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /** 检查token实效 */
  2. import * as API_Passport from '../api/passport.js'
  3. import * as Common from '../utils/common'
  4. const app=getApp()
  5. export function checkToken(){
  6. return new Promise((resolve,reject)=>{
  7. const authorInfo=app.globalData.authorInfo
  8. if(authorInfo==null||authorInfo==''){
  9. //自动登陆尝试
  10. wx.removeStorageSync('login_result')
  11. console.log('checkTokenAutoLogin')
  12. Common.toAutoLogin()
  13. return
  14. }
  15. const access_token_timeout = authorInfo.access_token_timeout
  16. const refresh_token_timeout=authorInfo.refresh_token_timeout
  17. const now=Date.parse(new Date())/1000
  18. console.log('test',!refresh_token_timeout||refresh_token_timeout<now)
  19. if(!refresh_token_timeout||refresh_token_timeout<now){
  20. //认为刷新token已经完全失效,必须重新登陆,跳转登陆界面,
  21. wx.removeStorageSync('authorInfo')
  22. // wx.removeStorageSync('sellerUser')
  23. wx.removeStorageSync('sellerShop')
  24. wx.removeStorageSync('login_result')
  25. app.globalData.authorInfo={}
  26. wx.redirectTo({
  27. url: '/pages/login/login',
  28. })
  29. reject()
  30. return
  31. }
  32. console.log('timeout',access_token_timeout)
  33. if (!access_token_timeout || access_token_timeout <=now) //access_token 失效 刷新token
  34. {
  35. API_Passport.refreshToken({'refresh_token':authorInfo.refresh_token}).then(res=>{
  36. console.log(res)
  37. const {access_token_timeout,refresh_token_timeout}=res
  38. app.globalData.authorInfo={...res,'access_token_timeout':access_token_timeout+now-500,'refresh_token_timeout':refresh_token_timeout+now-500}
  39. wx.setStorageSync('authorInfo', app.globalData.authorInfo)
  40. resolve()
  41. }).catch(err=>{
  42. console.log(err)
  43. reject()
  44. })
  45. }
  46. else{
  47. resolve()
  48. }
  49. })
  50. }