当前位置: 首页 > wzjs >正文

政府门户网站的基本内容包括外贸定制网站建设电话

政府门户网站的基本内容包括,外贸定制网站建设电话,外包做网站公司有哪些,东莞建设通网站概念:单点登录(Single Sign-On, SSO)主要是在多个系统、多个浏览器或多个标签页之间共享登录状态,保证用户只需登录一次,就能访问多个关联应用,而不需要重复登录。 💡 方案分类 1. 前端级别 SS…

概念:单点登录(Single Sign-On, SSO)主要是在多个系统、多个浏览器或多个标签页之间共享登录状态,保证用户只需登录一次,就能访问多个关联应用,而不需要重复登录。

💡 方案分类

1. 前端级别 SSO(仅适用于同源)

适用于:同一域名下的多个系统或标签页

方案适用范围共享方式缺点
localStorage同浏览器、同源localStorage 共享 token不支持跨浏览器或隐身模式
sessionStorage仅当前标签页sessionStorage关闭标签页即失效
cookie同域、所有浏览器服务器 Set-Cookie不能跨域,容量限制
BroadcastChannel同浏览器、同域postMessage 事件广播仅适用于同浏览器

2. 前后端结合 SSO(适用于跨域)

适用于:多个子系统,支持不同域名共享登录

方案适用范围共享方式适合场景
OAuth 2.0 + JWT跨域、多端通过授权服务器获取 token第三方登录(微信、GitHub)
CAS (Central Authentication Service)内部系统CAS 服务器管理登录态企业内网统一认证
SSO + Cookie(SameSite=None + CORS)跨子域主域 *.example.com 共享 cookie适用于 SaaS 平台
SSO + Redis + Session跨域token 存 Redis,前端查询高并发业务

🔹 方案 1:前端 localStorage + BroadcastChannel(适用于同域)

适用于:同一浏览器的多个标签页
💡 实现思路

  1. 登录时,将 token 存入 localStorage 并通知其他标签页

  2. 新标签页打开时,自动获取 localStoragetoken

  3. 监听 localStorage 变化,保证 token 实时同步

// 登录时设置 token
localStorage.setItem('token', 'your-token-value')// 监听 token 变化,保证新打开的页面能同步
window.addEventListener('storage', (event) => {if (event.key === 'token') {console.log('新 token:', event.newValue)}
})

优点

  • 实现简单

  • 无需后端支持

  • 适用于同一浏览器、同一域名下的多个系统

缺点

  • 不能跨浏览器、跨设备共享

  • 不能跨域名(如 a.com 无法共享 b.comtoken


🔹 方案 2:SSO + Cookie 共享(适用于跨子域)

适用于:跨子域(如 admin.example.comuser.example.com
💡 实现思路

  1. 后端设置 cookie,作用域为 *.example.com

  2. 前端所有子系统 访问 cookie 共享登录状态

  3. 跨域设置 SameSite=None; Secure

后端(Node.js 示例)

 
res.cookie('token', 'your-token', {domain: '.example.com', // 设置作用域path: '/',httpOnly: true,secure: true,sameSite: 'None' // 允许跨域
})

前端

fetch('https://auth.example.com/check-login', {credentials: 'include' // 允许跨域携带 Cookie
}).then(res => res.json()).then(data => {console.log('登录状态:', data)})

优点

  • 支持多个子域共享登录

  • 安全性较高

  • 用户体验好

缺点

  • 不能跨主域(如 example.com 不能共享 other.com

  • 需要 HTTPS

  • 浏览器 SameSite 限制较多


🔹 方案 3:OAuth 2.0 + JWT(适用于跨域、第三方登录)

适用于:多端、第三方应用、社交登录(如 Google、GitHub、微信)
💡 实现思路

  1. 用户在 SSO 服务器 登录,返回 token

  2. 其他系统使用 token 请求 SSO,获取用户信息

  3. 通过 OAuth 标准协议授权

前端 OAuth 登录

window.location.href = `https://sso.example.com/oauth/authorize?client_id=your-client-id&redirect_uri=${encodeURIComponent(window.location.href)}`

后端验证 token

app.get('/auth/user', async (req, res) => {const token = req.headers.authorization?.split(' ')[1]const user = verifyToken(token) // 解析 JWTres.json(user)
})

优点

  • 支持跨域、跨设备

  • 可用于第三方应用

  • 安全性高

缺点

  • 需要后端支持 OAuth 2.0

  • token 需要存 cookielocalStorage


🔹 方案 4:SSO + Redis + Session(适用于企业系统)

适用于:企业级 SSO(如钉钉、企业微信)
💡 实现思路

  1. 用户登录后,后端将 session 存入 Redis

  2. 不同系统请求 SSO,校验 session 是否有效

  3. 用户登出时,删除 Redis session

后端

const sessionStore = new Redis() // 连接 Redisapp.post('/login', (req, res) => {const token = generateToken(req.body.user)sessionStore.set(token, JSON.stringify(req.body.user), 'EX', 3600) // 存入 Redisres.json({ token })
})app.get('/check-session', async (req, res) => {const token = req.headers.authorization?.split(' ')[1]const session = await sessionStore.get(token)if (session) {res.json(JSON.parse(session))} else {res.status(401).json({ message: '未登录' })}
})

优点

  • 可以跨域、跨浏览器共享登录

  • 适用于大规模企业级系统

  • 支持 SSO 统一管理

缺点

  • 需要后端支持 Redis

  • 实现较复杂


📌 方案对比

方案适用范围共享方式安全性适合场景
localStorage同浏览器localStorage前端应用
BroadcastChannel同浏览器postMessage单页面应用
Cookie + SameSite跨子域cookie内部 SaaS 系统
OAuth 2.0 + JWT跨域、第三方token公共平台
SSO + Redis跨系统、跨浏览器session企业 SSO

🎯 最佳实践

  • 小型前端应用(SPA)localStorage + BroadcastChannel

  • 企业 SaaS(跨子域)Cookie + SameSite=None

  • 第三方登录(跨域)OAuth 2.0 + JWT

  • 企业级 SSO(跨浏览器、多系统)Redis + Session

推荐组合
SSO + OAuth 2.0 + Redis + JWT,适用于高安全性、多端登录

http://www.dtcms.com/wzjs/86473.html

相关文章:

  • 哈尔滨房产信息网官网超级优化大师
  • 织梦cms做网站线上营销平台
  • 新版织梦腾讯3366小游戏门户网站模板源码seo是什么级别
  • 专业的网站开发团队网页生成器
  • 广告电商百度seo排名优化
  • 简单的网站首页模板百度关键词怎么做排名
  • 站点搜索网络营销推广方案前言
  • 网站建设成果如何在网站上推广自己的产品
  • 网站建设公司北京华网天下实惠seo模拟点击软件
  • 做行程好的网站seo刷关键词排名工具
  • 建设网站需要那些技术人员百度搜索引擎怎么弄
  • 长沙 网站seo服务 网络服务营销软文
  • 苏州美丽乡村建设网站真实的优化排名
  • h5商城网站怎么做魔方优化大师官网
  • 网站动画用什么程序做优化方案丛书官网
  • 做兼职拍照片传网站网站友情链接
  • 网站.cc域名广告软文范例
  • 做网站需要什么电脑配置微博推广价格表
  • 域名验证网站日本粉色iphone
  • Wordpress python版上海seo优化外包公司
  • 中华建设杂志网站吸引人气的营销方案
  • 优化建站seo门户青岛网站运营
  • 织梦手机网站制作石家庄手机端seo
  • 简述php网站开发流程图久久seo正规吗
  • 武汉企业北京首页关键词优化
  • 哪里有网站制作服务游戏代理平台
  • wordpress怎样建立二级菜单seo百度百科
  • 广州市专注网站建设公司上海seo有哪些公司
  • 网站开发及运营代理协议范本互联网站
  • 网站宣传页baiduseoguide