使用Angular登录使用IdentityServer4的.NET Core Web API



我有以下项目结构:

  • Webapi(不同域)
  • auth-server(不同域)
  • Angular-Client(不同域)

Web API和Authserver都在.NET Core 2.0上,我使用IdentityServer4来生成安全令牌,我可以正确实现。我正在使用PostgreSQL DB来持续使用用户,令牌,客户端等的所有信息

当我想使用Angular客户端登录时,我的问题就会出现。我无法理解必须执行服务以实现登录方式的方式;我了解,向Angular客户端的用户,密码和数据发送auth-server是足够的,这样它将返回将其存储在本地存储中的令牌,然后将其用于Angular内部所需的所有内容客户,但我做不到。

身份服务器文档没有谈论如何做这种事情,事实是我有点沮丧。

使用OIDC-CLIENT库来制作路径,但这似乎不是我需要的,因为我不知道如何发送用户名和密码进行验证。

请,您能推荐我正确的工作流程,或者在任何情况下如何从Angular索取auth-server的令牌?

nora:我不添加代码,因为这是对概念的疑问,而不是对代码的疑问。

这将是oauth/oidc项中的隐式流。

遵循的示例是在QuickStart教程7中:https://indistityserver4.readthedocs.io/en/release/quickstarts/7_javascript_client.html

您需要将浏览器重定向到Auth Server的登录页面或使用POP窗口(加载Auth Server的登录页面)。

不应将用户名和密码输入到Angular应用中。Angular应用将在用户从身份服务器接收ID_Token和/或access_token后知道。

身份服务器4:

有一个令牌端点
http://youridentityserverurl/connect/token

您可以通过form-urlencoded如下:

POST /connect/token
CONTENT-TYPE application/x-www-form-urlencoded
    client_id=client1&
    client_secret=secret&
    grant_type=authorization_code&
    scope=hdh922&
    username=username&
    password=password&

它将返回您的access_token和其他一些细节。

您可以参考此链接:https://indistityserver4.readthedocs.io/en/latest/endpoints/token.html#

相关内容

  • 没有找到相关文章

最新更新