单点登录业务逻辑

1.登录页判断是否有token

1.先从route中获取token,没有的话跳转公司登录页进行扫码登录或者账号密码登录;登录成功后url中会有token相关信息

2.获取url中token并调公司验证token接口进行验证token的可用性,并将token存储在浏览器中

const ssoLogin = async () => {
  const route = useRoute();
  const token = route.query?.token;
  console.log(token);
  if (token) {
    try {
      const res = await verifyToken({ project: VITE_SSO_PROJECT_ID, token });
      const { P } = res;
      const param: any = {
        accessToken: token,
        refreshToken: "adminRefresh",
        expires: "2030/10/30 00:00:00",
        username: P.name,
        nickname: P.engName + "," + P.region,
        // 一个用户可能有多个角色
        roles: [],
        avatar: P.avatar
      };
      setToken(param);
  } else {
    window.location.href = `https://sso.xiaoxitech.com/login?project=${VITE_SSO_PROJECT_ID}&cb=${encodeURIComponent(VITE_PROJECT_PATH)}`;
  }

2.在请求接口中携带token进行请求

3.登出操作

在注销时通知SSO系统,并清除本地存储信息,跳转到登录页

logOut() {
      const data = getToken();
      logout({
        project: VITE_SSO_PROJECT_ID,
        token: data.accessToken
      }).then(() => {
        this.username = "";
        this.roles = [];
        removeToken();
        useMultiTagsStoreHook().handleTags("equal", [...routerArrays]);
        resetRouter();
        window.location.href = `https://sso.xiaoxitech.com/login?project=${VITE_SSO_PROJECT_ID}&cb=${encodeURIComponent(VITE_PROJECT_PATH)}`;
      });

      // router.push("/login");
    },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.指尖舞者

如果帮助到了你,请给点赞助支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值