当前位置:   article > 正文

A项目点击按钮跳转到B项目携带token再跳回来_url跳转传token

url跳转传token

 AB项目安装插件:js-cookie

 引入插件:import Cookies from 'js-cookie'

补充:Cookies.get()获取,Cookies.set()存储

A项目封装请求的时候接收一个headers参数(请求的时候请求头需要带上token)

A项目

页面初始的时候判断一下Cookies里有没有存储过token,如果没有存储过的话则token为undefined,然后我们给this.token赋值为“”需要去登录

  1. created() {
  2. if (Cookies.get('token') == undefined) {
  3. this.token = ""
  4. } else {
  5. this.token = Cookies.get('token')
  6. }
  7. }

 点击点赞按钮的时候判断this.token是否为“”

  1. fabulous() {
  2. if (this.token == "") {
  3. this.$message({
  4. showClose: true,
  5. message: '即将登录'
  6. });
  7. //这里写个定时器延迟2秒再去登录,不需要清除定时器
  8. //在data里定义一下timer: null,
  9. this.timer = setTimeout(() => {
  10. //这里我们在地址中携带一个参数source登录成功之后用来判断网络来源,
  11. //如果是从网页登录的话需要再跳转回来
  12. var source = "wed"
  13. window.location.href = 'http://xxx.xxx.x.xxx:8001/#/login?source=' + source
  14. }, 2000);
  15. } else {
  16. //请求点赞接口
  17. post('/api/admin/xxxxxx/like', { xwArticleId: this.xwArticleId },
  18. { token: this.token }//把token添加在请求头里
  19. )
  20. }
  21. },

B项目:

登录接口请求成功之后

  1. //把token存到Cookies中
  2. Cookies.set('token', res.data.token)
  3. //判断来源,如果是从网页端跳转过来的登录成功之后携带token立马跳转回去
  4. //获取地址
  5. let sourceurl = window.location.href
  6. //截取=号后面的值
  7. let sourcetxt = sourceurl.split("=")
  8. //进行解码
  9. sourcetxt = decodeURI(sourcetxt[1])
  10. //如果参数为wed跳回网页
  11. if (sourcetxt === 'wed') {
  12. window.location.href = 'http://xxx.xxx.x.xxxx:8080/#/myIndex';
  13. return
  14. }
  15. //否则跳转到管理端主页
  16. this.$router.replace({ name: 'home' })

补充:从网页A项目跳转到管理端B项目的,且在网页A项目中已经登录过获取到token了,直接跳转到管理端B项目的主页,不需要重新登录

网页A项目登录方法

  1. signin() {
  2. //如果token为“”的话直接跳转到登录页面
  3. if (Cookies.get('token') == "") {
  4. window.open("http://xxx.xxx.x.xxx:8001/#/login")
  5. } else {
  6. //否则携带Cookies里的token跳转到管理端主页
  7. let token = Cookies.get('token')
  8. window.open("http://xxx.xxx.x.xxx:8001/#/login", token)
  9. }
  10. }

管理端B项目:初始化的时候

  1. created() {
  2. //window.name获取window.open()跳转传递过来的参数token
  3. if (window.name !== "") {
  4. //当window.name !== "",把我们传递过来的token存在Cookies里
  5. Cookies.set('token', window.name)
  6. //跳转到主页
  7. this.$router.replace({ name: 'home' })
  8. }
  9. },

补充:从管理端B项目携带token跳转到网页A项目

 管理端B项目:

  1. //获取Cookies里的token
  2. let token = Cookies.get('token')
  3. //跳到网页端的时候带一个source用来判断网络来源
  4. window.open('http://xxx.xxx.x.xxx:8080/xxx.html#/myHome?source=' + 'management', token)

网页A项目:初始化的时候

  1. created() {
  2. //判断来源,如果是从管理端跳转过来的存一个token
  3. let sourceurl = window.location.href
  4. let sourcetxt = sourceurl.split("=")
  5. sourcetxt = decodeURI(sourcetxt[1])
  6. if (sourcetxt === 'management') {
  7. Cookies.set('token', window.name)
  8. }
  9. },

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/502044
推荐阅读
相关标签
  

闽ICP备14008679号