vue1688授权返回code参数处理

写在router/inde## 标题x.js文件中加粗样式*****斜体样式*

// 导航守卫
// 使用 router.beforeEach 注册一个全局前置守卫,判断用户是否登陆
router.beforeEach(async (to, from, next) => {
//拿到当前页面url,vue编译完成的页面会有'#/'
let url = window.location.href;		
//例如http://c.baidu.com/mark?setId=64#/
if (url.split('?')[1] !== undefined) {
  let cs = decodeURI(url.split('?')[1]);			//?后面的参数字符串
  console.log(url)
  let cs_arr = cs.split('&');				//将参数字符串分割为包含多个参数的数组
  cs = {};								//声明一个容器
  for (let i = 0; i < cs_arr.length; i++) {		//遍历数组
    //将下标为0123的数组字符串,转化为    {key1:value1;key2:value2;}  格式的json
    cs[cs_arr[i].split('=')[0]] = cs_arr[i].split('=')[1]
  }
  console.log("路劲:", cs)
  if (cs.code !== undefined && cs.state === 'YOUR_PARM#/') {
  //调用code换取token接口
    let res = await api.codeExchangeToken({code: cs.code})
    if (res.code === 0 && res.data !== null) {
      console.log("code请求结果:", res);
      await Util.localData('set', 'token', res.data.access_token);
      await Util.localData('set', 'memberId', res.data.memberId);
      //获取用户信息
      let userInfo = await api.getUserInfo({access_token: res.data.access_token, loginId: res.data.resource_owner});
      console.log("用户信息:", userInfo)
      if (userInfo !== false) {
        await Util.localData('set', 'userInfo', userInfo.data.result);
      }
      //重定向到回调地址
      window.location = 'https:**********';
    }
  }
}
  let token = await Util.localData('get', 'token');
if (to.path === '/') {
  next();
} else {
  // let token = store.state.token;
  console.log("票:", token);
  console.log("跳转页面信息:", next);
  if (token === '') {
    next('/')
  } else {
    next();
  }
}
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值