在Angular 6 / ASP.Net Core中注册,登录,确认电子邮件和密码重置

时间:2018-08-16 15:00:30

标签: angular asp.net-web-api identityserver4

我们正在使用最新版本的Visual Studio 2017(当前为预览版4)附带的Angular模板来构建越来越多的Web应用程序。

因此,在当前的开发计算机上,我具有.Net Core 2.1.400-preview-009171和Angular CLI 6.0.8。

我从与Visual Studio 2017 Preview 4捆绑在一起的Angular模板开始,然后进入package.json文件并将所有引用升级到当前版本。

所有这些,这是我的问题。我工作中的几乎每个应用程序都具有以下要求:

  1. 用户注册
  2. 电子邮件确认
  3. 密码重置功能

到目前为止,我能够找到的所有关于我的方案的指南都涉及使用MVC进行注册,登录和密码重置表单。因此,您必须从SPA路由到MVC,然后再返回以进行身份​​验证。然后,您可以在SPA和API之间使用刷新令牌。有没有一种方法可以让您使用Identity / IdentityServer4进行身份验证,而不必使用MVC视图等?

第一次在这里发布...希望我不要感到羞耻。

1 个答案:

答案 0 :(得分:0)

我认为您需要问自己一些问题。您是否需要身份服务器? OAuth Provider的原理是您将用户重定向到“授权服务器”并在那里处理内容。这里的用例是SSO,不需要为您编写的每个应用程序构建身份验证。

但是,由于您不希望使用MVC视图,因此我觉得您实际上并不需要Identity Server。 (您始终可以将整个Identity Server应用程序移植到Angular / React / Vue,但我看不到这样做的意义,身份验证主要不是公司的核心业务)

但是,在流程中您不需要MVC视图。资源所有者密码凭证流。比起您可以通过后端API将密码和用户名发送到Identity Server,您将收到访问令牌,还可以启用刷新令牌。网上有关于此的教程。

但是,如果您真的只打算在此用例中使用Identity Server。我自己动手做。

创建一个使用Identity的API(具有一些基本路径/ login / register ...),并自己生成访问令牌。 Web上的ASP.Net Core中有很多示例可以做到这一点。

希望我能对您有所帮助。