最近考虑登录的时候,想来想去就想到一两种,想看看大家有没有好的想法。请大家不要提sso,不讨论这个,只是讨论一个简单的登录有哪些实现方式。
搞过一点登录库,假设一个公司有形如 A B C 的多个子站点,常见模式大致如下:
每个站点由后端框架维护独立的登录信息,在 HTML 模板中返回是否登录的状态。这时访问不同子站点需要重新登录。
每个站点由后端框架维护 SSO 信息,用户在登录每个子站前,后端将请求重定向至 SSO 站点以将登录状态同步,从而在登录 A 后,登录 B 时登录状态能够同步。
前后端分离,每个子站页面加载时,由前端框架跨域请求 SSO 站点,同步登录状态。
前后端分离,前端部署支持 SSO 的 Node 服务,将 SSO 放在 Node 层完成,前端和后端业务逻辑中均完全剥离登录逻辑(目前我司的方案)。
具体实现上有很多细节,如 token 字段是放在 http 头还是 url 参数还是 cookie 还是 json 属性中,或者 token 通过何种规则生成,过期时间多少,登录状态持久化用 localStorage 还是 sessionStorage 等,最后基本殊途同归,就不展开了。
提供一个登陆页面,提交用户信息后和数据库匹配,登陆成功用户信息写到 session,够简单不
搞过一点登录库,假设一个公司有形如 A B C 的多个子站点,常见模式大致如下:
每个站点由后端框架维护独立的登录信息,在 HTML 模板中返回是否登录的状态。这时访问不同子站点需要重新登录。
每个站点由后端框架维护 SSO 信息,用户在登录每个子站前,后端将请求重定向至 SSO 站点以将登录状态同步,从而在登录 A 后,登录 B 时登录状态能够同步。
前后端分离,每个子站页面加载时,由前端框架跨域请求 SSO 站点,同步登录状态。
前后端分离,前端部署支持 SSO 的 Node 服务,将 SSO 放在 Node 层完成,前端和后端业务逻辑中均完全剥离登录逻辑(目前我司的方案)。
具体实现上有很多细节,如 token 字段是放在 http 头还是 url 参数还是 cookie 还是 json 属性中,或者 token 通过何种规则生成,过期时间多少,登录状态持久化用 localStorage 还是 sessionStorage 等,最后基本殊途同归,就不展开了。
提供一个登陆页面,提交用户信息后和数据库匹配,登陆成功用户信息写到 session,够简单不