Java:用redis实现单点登录是否可行

Java:用redis实现单点登录是否可行


函数式编程
浏览 2132回答 2
2回答

慕后森

用redis实现单点登录是可行的。首先,session的大部分实现都是通过cookie的,所以跨域session是不可能的。但跨域的认证还是可以有OAuth等实现方法,不太推荐OAuth项目。其次,跨域有点难,但放在同一域下的不同项目是可以共享session的,CAS也不算复杂。可以上github搜一下redis-session这个项目,只有一个源代码文件,它给出了redis下session的一种nodejs实现,就是设置redis的超时来模拟session的超时。再次,跨域也是可以的,就是使用iframe,在登录时,在多个域下同时写cookie,注意浏览器差异。综上,完全可行。

萧十郎

单点登录是要求客户端保存用户登录的票据(ticket)的(简化一点,也可以是会话id)对于不同子域名下,是可以这么做的。通常cookie中,只保存session的标识(id),或者与sessionId一一对应的key。在访问重要的资源时(不同子域名下),可以要求用户重新输入一次登录密码,或者输入其他用户的安全码。可以使用 httponly 提高安全属性,但也不能完全防止xss攻击。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java