SSO(Single Sign On)
用户只需登录一次,就可访问同一帐号平台下的多个应用系统。SSO
是一种统一认证和授权机制,去解决这种重复认证的逻辑,提高用户的体验。ticket
如何获得ticket
多应用共享主要有三种方式:父域加密 Cookie、用户认证中心、Localstoragecookie
,客户端将该 cookie
保存到父域中cookie
最好经过加密处理,因为 Cookie
本身并不安全Cookie
不能跨域实现免登,放到父域中可以解决跨域的问题domain
要设置成主域名,而非二级域名,这样二级域名就可以使用同一个 Cookie
了// 如果某个平台有三个应用,分别是:
// 门户应用:www.autofelix.com
// 商城应用:shop.autofelix.com
// 支付应用:pay.autofelix.com
document.cookie = "ticket=xxxxxx;domain=.autofelix.com;path=/
Ticket
,如果没有,则说明用户在该应用上尚未登录,跳转到用户中心,通过用户中心的 Cookie
去判断用户是否在其他应用上进行了登录Tickcet
,并让 Ticket
拼接在 URL
上,重定向回应用系统Ticket
后,将重新向用户认证中心发起验证,防止该 Ticket
是用户伪造,验证成功后,记录用户登录状态,并将 Ticket
写入到当前应用的 Cookie
中Ticket
,也就能正常访问服务了iframe+postMessage()
方式,将同一份 Ticket
保存到多个域名下的 LocalStorage
中Ticket
返回给前端处理即可原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。