Vue微信授权登录

授权登录,前端把当前的url传给后台,后台跳转到微信授权页,授权成功后回跳到原来页面,把token和openid放在cookie里。
在main.js里写router拦截,若没有token,存储当前url,命名为forwardUrl,然后跳转到oAuth页面:

router.beforeEach((to, from, next) => {
  const token = Vue.cookie.get('TOKEN')
  const openId = Vue.cookie.get('OPENID')

  if (!token && !openId && to.path !== '/oAuth') {
     setStore('forwardUrl', to.fullPath)
     next('/oAuth')
  }
  next()
})

在oAuth页面,自己写个正在授权中的样式

if (process.env.NODE_ENV === 'production') {
  const token = this.$cookie.get('TOKEN')
  const openId = this.$cookie.get('OPENID')
  let url = decodeURI(getStore('forwardUrl'))

  if (!token && !openId) {
    window.location.href = getOpenId(url) // 跳转到微信授权页
  } else {
    this.$router.replace(`${url}`)
  }
}

你可能感兴趣的:(前端)