当前位置:首页 > VUE

vue 实现单点登录

2026-03-28 04:28:28VUE

单点登录(SSO)概念

单点登录是一种身份验证机制,允许用户通过一次登录访问多个相互信任的系统。在Vue项目中,通常结合后端(如Spring Security、OAuth2.0)实现。

基于Token的SSO实现

前端流程

  1. 用户登录时,Vue应用向后端发送认证请求(如用户名/密码)。
  2. 后端验证成功后返回Token(如JWT),前端存储Token至localStorage或cookie。
  3. 后续请求在HTTP头中携带Token(如Authorization: Bearer <token>)。
// Vue中封装axios请求拦截器
import axios from 'axios';
axios.interceptors.request.use(config => {
  const token = localStorage.getItem('sso_token');
  if (token) config.headers.Authorization = `Bearer ${token}`;
  return config;
});

跨域SSO方案

使用OAuth2.0授权码模式

  1. 主系统登录后重定向到认证中心,携带client_idredirect_uri
  2. 认证中心验证通过后返回授权码至redirect_uri
  3. Vue应用通过授权码向后台换取Token。
// 在Vue路由守卫中检查登录状态
router.beforeEach((to, from, next) => {
  if (!localStorage.getItem('sso_token') && to.meta.requiresAuth) {
    window.location.href = `https://auth-center.com/login?redirect=${encodeURIComponent(window.location.href)}`;
  } else {
    next();
  }
});

共享Session方案

适用于同域名不同子路径

  1. 设置cookie的domain为顶级域名(如.example.com)。
  2. 所有子系统的登录状态通过共享cookie中的sessionId验证。
// 设置cookie
document.cookie = `sessionId=${sessionId}; domain=.example.com; path=/`;

注意事项

  • Token需设置合理有效期,推荐结合refreshToken机制。
  • 敏感操作应进行二次验证。
  • 生产环境必须使用HTTPS保证传输安全。
  • 退出登录时需同步清理所有系统的认证状态。

第三方SSO集成

可接入社会化登录(如微信、Google登录):

vue 实现单点登录

  1. 使用SDK(如vue-auth0)初始化配置。
  2. 处理回调页面获取用户信息。
// 示例:Auth0集成
import { Auth0Plugin } from '@auth0/auth0-vue';
Vue.use(Auth0Plugin, {
  domain: 'your-domain.auth0.com',
  clientId: 'your-client-id',
  redirectUri: window.location.origin
});

标签: 单点vue
分享给朋友:

相关文章

vue实现递归

vue实现递归

Vue 实现递归组件的方法 在 Vue 中实现递归组件通常用于处理树形结构数据(如菜单、评论列表、文件目录等)。以下是具体实现方法: 定义递归组件 通过 name 选项让组件可以递归调用自身: &…

vue实现方法

vue实现方法

Vue 实现方法 Vue 是一种流行的前端框架,用于构建用户界面和单页应用。以下是几种常见的 Vue 实现方法: 创建 Vue 实例 通过 new Vue() 创建一个 Vue 实例,传入配置对象,…

vue实现hover

vue实现hover

Vue 实现 hover 效果的方法 在 Vue 中实现 hover 效果可以通过多种方式实现,包括使用 CSS、Vue 指令或事件监听。以下是几种常见的方法: 使用 CSS :hover 伪类 通…

vue 实现轮播

vue 实现轮播

Vue 实现轮播的方法 使用第三方库(如 Swiper) 安装 Swiper 库: npm install swiper 在 Vue 组件中引入 Swiper: <template>…

vue实现绘图

vue实现绘图

Vue 实现绘图的方法 在 Vue 中实现绘图功能,可以通过多种方式实现,包括使用原生 HTML5 Canvas、第三方库(如 Fabric.js、Konva.js)或 SVG。以下是几种常见的实现方…

vue实现hexo

vue实现hexo

Vue 集成 Hexo 的实现方法 Hexo 是一个静态博客框架,而 Vue 是一个前端框架。将 Vue 集成到 Hexo 中可以通过以下方式实现: 在 Hexo 中使用 Vue 组件 通过 Hex…