我有以下项目结构:
webapi(不同的域名) auth-server(difernte domain) angular-client(不同的域名)
webapi和authserver都在.NET Core 2.0上,我使用IdentityServer4生成安全令牌,这是我正确实现的。我正在使用PostgreSQL数据库来保存用户,令牌,客户等的所有信息。
当我想使用角度客户端登录时,我的问题就出现了。我无法理解为实现登录必须执行服务的方式;我知道向auth-server发送角度客户端的用户,密码和数据就足够了,这样它就会返回一个令牌,将其存储在本地存储中,然后将其用于角落内的所有内容客户,但我不能这样做。 IdentityServer文档没有讨论如何做这种事情,事实是我有点沮丧。
使用oidc-client库创建路径的探测器,但似乎这不是我需要的,因为我不知道如何发送用户名和密码进行验证。
请您,您能告诉我正确的工作流程是什么,或者在任何情况下如何从Angular的auth-server请求令牌?
NORA:我不添加代码,因为它是对概念的怀疑而不是现实中的代码。
答案 0 :(得分:1)
这将是OAuth / OIDC条款中的隐含流程。
以下示例位于快速入门教程7中: https://identityserver4.readthedocs.io/en/release/quickstarts/7_javascript_client.html
您需要将浏览器重定向到auth服务器的登录页面,或使用弹出窗口(加载auth服务器的登录页面)。
不应将用户名和密码输入Angular应用程序。 Angular应用程序在从auth服务器接收到id_token和/或access_token之后将知道用户。