如何在不输入名称和密码的情况下验证用户身份,而是通过电子邮件发送带有令牌的 URL?
我尝试使用拦截包含令牌的 url 的控制器,但我的 spring 设置返回登录页面,因为用户是匿名的。
我还想与 URL 中的令牌连接,例如:
http://myWebSite/guest/18f1ff9a-fd1e-49be-bb31 ...
我为数据库中的每个用户都有一个令牌
我已允许使用令牌匿名访问控制器。然后我通过令牌获取用户的用户名和密码,如下所示:
String queryFindUserByToken = "from UserEntity u where u.token = :token";
现在我想使用从数据库中获得的登录名和密码自动创建一个用户会话。
我尝试使用参数重定向以重定向到 j_spring_security_check,但不支持身份验证方法:GET
@RequestMapping(value = "guest/{tokenUser}", method = RequestMethod.GET)
public String guest(Map<String, Object> map, @PathVariable String tokenUser) {
UserEntity user = userService.findUserByToken(tokenUser);
return "redirect:j_spring_security_check?j_username=" + user.getUsername() + "&j_password=" + user.getPassword() ;
}
你有更好的解决方案吗?