spring - 创建帐户、忘记密码和更改密码

标签 spring authentication registration forgot-password change-password

当开发人员想要保护其 Web 应用程序时,Spring Security 非常有用。

但是,创建帐户怎么样?和“忘记密码”?大多数登录页面都有这些链接以及用户名和密码字段。 Spring的默认登录页面没有这些链接...在好的情况下,它可以支持“记住我”...

Spring是否支持创建帐户、忘记密码和更改密码这些流程? 如果答案是肯定的,您能给我指出一些文档吗?

我已经搜索过这个问题,但没有找到任何东西。

谢谢!

最佳答案

你说得完全正确。 AFAIK 没有实现这些流程的“通用”包。我前段时间搜索了很多此类代码,但一无所获。我认为 @luizcarlosfx 是对的,每个应用程序都有自己的需求,因此很难编写适合所有需求的通用内容。

<小时/>

编辑: 我看到诸如“实现起来并不难”之类的评论。真的。但你必须确保处理好所有情况。例如,如果用户尝试创建已存在的帐户,会发生什么情况?如果用户尝试创建已存在但不活动的帐户,会发生什么情况?密码策略怎么样? (太长/太短/多少大写字母等)向用户发送带有激活链接的电子邮件怎么样?你如何创建这个链接?你如何加密它?接收链接点击并激活帐户的 Controller 怎么样?以及越来越多...

<小时/>

但是,我向前迈出了一步,尝试编写一些能够满足大多数流程的代码 - 注册、忘记密码、更改密码等,以及足够安全的代码,以便应用程序能够使用它,而不必担心它会很容易被黑客攻击。

我已经为此用例实现了一个 JAVA 项目。它是开源的,基于 Spring-Security。发布版本位于 Maven-Central 上,因此您无需编译它,而是可以将其作为项目的 maven 依赖项获取!

<dependency>
    <groupId>com.ohadr</groupId>
    <artifactId>authentication-flows</artifactId>
    <version>1.5.0-RELEASE</version>
</dependency>

我认为它回答了你的问题......

所有内容都有解释(如果缺少某些内容 - 请告诉我......)

您可以find here客户端应用程序代码的示例(即用法)。

这是main page of the project加上演示,以及 another demo is here (但是这个应用程序在升级到版本 1.6.1 后需要使用带有“nice”域的电子邮件登录 - Nice.com。因此您不能真正将其用于演示;使用第一个示例)。 这是一个使用身份验证流程的客户端网络应用程序,带有包含所有解释的自述文件。

希望有帮助!

关于spring - 创建帐户、忘记密码和更改密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38500287/

相关文章:

未找到 Spring 配置

JQuery Mobile - 用户登录最佳实践

authentication - 如何使用 OpenID 或 OAuth 进行内部第一方身份验证?

java - 使用依赖注入(inject)连接多个配置类

java - 我想创建一个 Spring Batch 项目,其中 Batch 不使用我的数据源

php - 保护我的 PHP 页面免受未经授权的查询

authentication - BlueMix 注册错误

android - 在 GCM : onRegistered isn't called 上注册设备

image - 在Matlab中应用变换后如何保持初始图像大小?

java - 阻止用户访问每个 wsdl 元素