这个问题实际上与Spring
Security无关。只要您知道用户数据库的结构和所使用的密码编码器,它实际上就是在实现涉及数据访问,Web控制器和发送电子邮件的工作流程。链接应包含随机令牌字符串(使用
SecureRandom和base64编码器),并且应将其与userId和时间戳(用于验证链接在其中有效的窗口)一起存储在数据库中。控制器将简单地从传入请求中提取令牌,并使用令牌从数据库加载数据。它将检查时间戳,然后将用户转发到密码输入表单。根据要求,您可能还希望他们回答其他一些安全问题。然后,您将对密码进行验证和编码,然后将其存储在与存储在重置链接表中的userId匹配的帐户中。运行批处理作业以从数据库中删除过期的链接也很有意义。
Grails Spring Security UI插件已经具有“ 忘记密码”选项,您可以直接使用该密码或用作参考。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)