【发布时间】:2018-02-22 09:54:57
【问题描述】:
我有一个网站,它结合了 ASP.NET Core MVC 和基于角度的 SPA,我正在尝试使用 IdentityServer4 来保护它。目前的登录流程如下所示:
- 用户单击主页上的登录按钮(www.example.com,MVC 基于)
- 用户被重定向到登录页面(login.example.com,基于 MVC)并登录
用户被重定向到 www.example.com/app,站点检测到它没有用户的 cookie,因此它将用户重定向到 login.example.com/connect/authorize 端点- 用户被重定向回网站,id_token 指向 www.example.com/signin-oidc,这会丢弃 cookie
- 用户最终被重定向到应该显示 SPA 的 www.example.com/app
问题是,当这最终完成时,SPA 需要访问令牌,以便它可以调用 API。我尝试使用 angular-auth-oidc-client 库,问题是这会等待整个 Angular 应用程序加载应用程序才发现它没有访问令牌并再次重定向到 login.example.com /connect/authorize 端点以获取令牌。
有更简单的方法吗? IE。在第 5 步使用访问令牌将用户重定向到应用程序?或者选择一种完全不同的方式来识别身份?
【问题讨论】:
-
所以您的服务器端代码中有访问令牌,您需要一种方法将其提供给您的客户端代码吗?您能否将其写入(会话)cookie 中,然后您的客户端代码可以读取和使用?
标签: angular asp.net-core-mvc identityserver4 openid-connect implicit-flow