Vue 单点登录
什么是单点登录https://zhuanlan.zhihu.com/p/66037342单点登录的英文名叫做:Single Sign On(简称SSO)。在初学/以前的时候,一般我们就单系统,所有的功能都在同一个系统上。后来,我们为了合理利用资源和降低耦合性,于是把单系统拆分成多个子系统。...cookie获取不到浏览器中所有的cookie值的问题https://blog.csdn.net/git
什么是单点登录 什么是单点登录(SSO) - 知乎
单点登录的英文名叫做:Single Sign On(简称SSO)。
在初学/以前的时候,一般我们就单系统,所有的功能都在同一个系统上。
后来,我们为了合理利用资源和降低耦合性,于是把单系统拆分成多个子系统。
...
我需要从浏览器中获取所有的cookie - 问答 - 腾讯云开发者社区-腾讯云 从浏览器中获取所有的cookie
cookie获取不到浏览器中所有的cookie值的问题 cookie获取不到浏览器中所有的cookie值的问题_ZhouMin8877的博客-CSDN博客
获取浏览器Cookie的值通过document.cookie 来查找cookie值const cookie = name => `; ${document.cookie}`.split(`; ${name}=`).pop().split(';').shift();
cookie('_ga');
// Result: "GA1.2.1929736587.1601974046"
如果浏览器中 cookie的,domain 不是当前环境的值,就无法用 document.cookie 拿到这个cookie (因为存在跨域,ip也不行)
而且必须只能是同域名下面
获取浏览器里所有的cookie https://blog.csdn.net/boylufeng/article/details/44088575
document.cookie (F12 直接打印出来看)
iPlanetDirectoryPro1=C8iTptTY1dkK3elnHu6jt2N84BdztfNGU5HnwzTXb-7OYngegMZBxFC1R5EpeDj7N19v4wk1MKc3MF0USrYV3FUY4hJ3_yCaNfQpjSdw_lTyNz_u2grt8NleBnNEgAI0; LtpaToken=AAECAzYwNjZDNUVBNjA2NkZFMkFDTj0Ty9UTveAvT1U9U0dTL089R01DQ4/PNPmmpJAL0sDqXsmZAFl7ZXZZ; iPlanetDirectoryPro=C8iTptTY1dkK3elnHu6jt2N84BdztfNGU5HnwzTXb-7OYngegMZBxFC1R5EpeDj7N19v4wk1MKc3MF0USrYV3FUY4hJ3_yCaNfQpjSdw_lTyNz_u2grt8NleBnNEgAI0; rememberme_username=suxxx;
Admin-Token=9b1bd4fc5fd679f9036d06d024e4280c
此时浏览器cookie里面就有所有的本域名下的cookie了 直接取就行
@/utils/auth.js
export function getTokenSingleweb() { //获取单点登录接口
return Cookies.get('iPlanetDirectoryPro') //key名字
}
代码:单点登录只在登录页面判断就行 没必要在router.beforeEach里面
import { singlewebToken } from "@/utils/auth"; // get token from cookie
mounted() {
// const singlewebToken = singlewebToken();
const singlewebToken2 =
"C8iTptTY1dkK3elnHu6jt2N84BdztfNGU5HnwzTXb-7OYngegMZBxFC1R5EpeDj7PTSSLiQjrG7ohrX_ssbrKVxELDowGJRDWtTLIX - p7LWeUqc0ugg3zGoEBSt4okFB"; //singlewebToken
if (singlewebToken2) {
this.handleSso(singlewebToken2);
}
},
methods: {
//判断单点登录的接口
handleSso(params) {
let _this = this;
axios({
method: "post",
url: window.global_url.Base_url + "/sys/sso",
params: {
...params,
},
})
.then((response) => {
if (response.data.code == 200) {
const { roles, token, expire, username, userId } = response.data;
if (!roles || roles.length <= 0) {
reject("roles must be a non-null array!");
}
store.commit("user/SET_TOKEN", token);
store.commit("user/expire", expire);
store.commit("user/SET_NAME", username);
store.commit("user/userId", userId);
store.commit("SET_ROLES", roles);
window.localStorage.setItem("userId", JSON.stringify(userId));
window.localStorage.setItem("username", JSON.stringify(username));
setToken(token, expire);
_this.$router.push({ path: _this.redirect || "/" });
}
if (response.data.msg == "单点登陆Token过期,请重新登陆") {
this.$router.push("/login");//普通跳转就行
}
})
.catch((error) => {
if (error.response.msg == "单点登陆Token过期,请重新登陆") {
router.replace({
path: "/login",
query: {
redirect: router.currentRoute.fullPath,
},
});
}
});
},
}
更多推荐
所有评论(0)