繁体   English   中英

Spring Security通过令牌登录Web

[英]Spring security login to web by token

我想在网页上登录用户,但不使用用户名和密码,而是使用令牌。 所以我有两个桌子

User:
id
username
password

Token:
id
user_id
token

因此,现在,如果用户在浏览器页面domain.com/token/{token}中打开,则应按令牌查找user_id并为该用户角色,权限等加载。

我当时在搜索,但是只找到了JWT(Rest API)的解决方案。

谢谢你的建议

UPDATE系统将为用户生成令牌,并将条目添加到Token表中。

例如:令牌是:ID为3的用户的token3333;)

当用户转到domain.com/token/token3333页面时,系统将自动以ID 3的用户身份登录,而无需填写用户名和密码。

Spring安全性很容易扩展,但是您必须手工完成

我真的不明白为什么您的单令牌登录系统比经典的用户名和密码登录页面更好,恕我直言,您应该三思而后行。

一种简单的方法是在这里使用spring-mvc控制器,该控制器将处理url domain.com/token/{token},在数据库中找到用户ID,然后直接构建完全认证的认证令牌。 然后,您只需要放入从SecurityContextHolder类的静态方法获得的SecurityContext。

如果您希望不依赖spring-mvc更好地集成到Spring安全性中,则应该设置一个自定义身份验证处理过滤器,该过滤器将使用URL中传递的令牌来构建有效的自定义身份验证。 它应该派生自AbstractAuthenticationProcessingFilter。 然后,您应该设置一个AuthenticationProvider能够处理该令牌,实际上通过令牌认证用户,并在AuthenticationManage注入它。 这里还有更多沸腾的食物,对于您当前的问题,我真的不确定这是否值得。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM