Als ich kürzlich darüber nachgedacht habe, mich einzuloggen, fielen mir ein oder zwei davon ein und ich wollte sehen, ob jemand gute Ideen hat. Bitte erwähnen Sie SSO nicht. Wir werden nur darauf eingehen, wie eine einfache Anmeldung implementiert wird.
搞过一点登录库,假设一个公司有形如 A B C 的多个子站点,常见模式大致如下:
每个站点由后端框架维护独立的登录信息,在 HTML 模板中返回是否登录的状态。这时访问不同子站点需要重新登录。
每个站点由后端框架维护 SSO 信息,用户在登录每个子站前,后端将请求重定向至 SSO 站点以将登录状态同步,从而在登录 A 后,登录 B 时登录状态能够同步。
前后端分离,每个子站页面加载时,由前端框架跨域请求 SSO 站点,同步登录状态。
前后端分离,前端部署支持 SSO 的 Node 服务,将 SSO 放在 Node 层完成,前端和后端业务逻辑中均完全剥离登录逻辑(目前我司的方案)。
具体实现上有很多细节,如 token 字段是放在 http 头还是 url 参数还是 cookie 还是 json 属性中,或者 token 通过何种规则生成,过期时间多少,登录状态持久化用 localStorage 还是 sessionStorage 等,最后基本殊途同归,就不展开了。
提供一个登陆页面,提交用户信息后和数据库匹配,登陆成功用户信息写到 session,够简单不