Angular4 OAuth2 IdentityServer4

时间:2017-10-20 08:38:04

标签: angular asp.net-core oauth-2.0 identityserver4

我正在考虑创建一个Angular4 WebApp,它将为用户提供登录/注册页面。我需要它能够:

  • 自定义登录(即用户配置了自己的用户名/密码)
  • Google登录
  • Facebook登录

到目前为止,我的理解是我需要以下内容:

  • 客户端(我的Angular4网络应用程序)
  • Auth服务器(IdentityServer4?)
  • 资源服务器(ASP.NET Core Web Api)

如果我使用IdentityServer4之类的东西作为我的auth服务器。我不能将我的登录/注册表单嵌入应用程序中吗?我必须始终重定向到AuthServer以执行登录,然后将其与访问令牌一起重定向回我的客户端。这是我们不想要的用户体验,但我不知道其他选择?

我的问题是:

  1. 我是否正确,如果我使用IdentityServer4,我的Angular4应用程序将无法登录/注册页面。必须重定向并在AuthServer本身上执行
  2. 是否可以使用替代IdentityServer4的替代方案,根据我的要求使用Angular Web应用创建登录/注册

1 个答案:

答案 0 :(得分:1)

将IdentityServer用于登录表单的前端是完全可选的。我建议你阅读the various Flows that are supported。要理解的最简单(通常称为“遗留”和不安全)选项是资源所有者密码流,它是允许纯JavaScript解决方案使用您自己创建的形式获取和使用令牌的流程之一。

直接回答您的问题:

  1. 不,你不对。具有重定向的流程只是其中一个选项,没有流程(仅在您自己的应用程序中只有一个表单)也是可能的。
  2. 是的,可能有替代方案,但Stack Overflow并不适合推荐。您可能需要查看SoftwareRecs.SE(请阅读他们的常见问题!)以便进行调查。