如何在不输入名称和密码的情况下对用户进行身份验证,但是通过电子邮件发送带有令牌的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() ;
}
你有更好的解决方案吗?