image.png

    1. 判断本地是否有token,如果有next()
    2. 没有token,判断当前url路由链接上时候有token,如果有保存到本地,并获取用户信息,next()
    3. 如果没有调取微信授权获取token
      1. // 路由开始进入
      2. router.beforeEach(async (to, from, next) => {
      3. useDocumentTitle(to.meta.title)
      4. //! 解决ios微信下,分享签名不成功的问题,将第一次的进入的url缓存起来。
      5. if (window.entryUrl === undefined) {
      6. window.entryUrl = location.href.split('#')[0]
      7. }
      8. const storeToken = computed(() => store.getters.token)
      9. const params = getQueryParams<IAuthQuery>()
      10. console.log(storeToken.value)
      11. if (!storeToken.value) {
      12. const { token } = params
      13. // 授权登录
      14. if (!token) {
      15. location.href = wechatRedirect()
      16. return
      17. }
      18. // 获取用户信息
      19. await store.dispatch(`auth/${AuthTypes.SAVE_AUTH_AND_USER_INFO}`, params)
      20. next()
      21. } else {
      22. next()
      23. }
      24. next()
      25. })