1.0.0 • Published 10 months ago

hktoday-sso-ticket v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
10 months ago

sso-bootstrap

该包用于 SSO 的登陆探测, 具体流程如下, 当用户在 SSO 上已有登陆状态但是未在某 APP 例如 APP1 上登陆时.

用户首次访问 APP1 时候, APP1 会通过 iframe 加载一个 SSO 域下的特殊的地址, 该地址包含一个空的 html 和本项目所提供的脚本.

SSO 会将临时用户信息访问授权 ticket 写入到 html 页面中, 本包下的 bootstrap.js 脚本会将其转发到调用 iframe 宿主手中.

SSO 服务器需要记录 referrer, 当 APP1 页面刷新的时候写入 onChange:true 这样确保调用者不会再走额外的刷新用户信息流程.

example

  • 用户在 SSO 已经登录, 在 APP1 上未登录
  • 用户信息修改
window.SSO = {
  ticket: 'ticket', // 携带 ticket
  noChange: null,
  origin: 'origin', // 加载 iframe 的宿主源
};
  • 用户登出
window.SSO = {
  ticket: null, // 配置 null
  onChange: null,
  origin: 'origin',
};
  • 用户在 SSO 登录同时在 APP1 也登录
window.SSO = {
  ticket: null,
  noChange: true, // 标记 noChange 为 true
  origin: 'origin',
};

注意事项

  • iframe 对应的 SSO 地址不应该配置任何缓存, 否则验证登陆过程将会失败.
  • 使用 iframe 的用户应该配置 referrer, SSO 服务应该探测 referrer 是否存在白名单中, 否则非常容易受到 xss 带来的大量流量攻击.
1.0.0

10 months ago