我有一个带有 Identity Server 4 的 ASP 核心应用程序设置,它为 Angular 2 SPA 提供基于 token 的身份验证。
为了登录,用户名和密码通过 Http Post 发送到身份服务器的“/connect”端点。
我想扩展登录过程以包括外部提供商(谷歌、Facebook 和所有),但我可以在网上找到的所有资源都提到了一个 MVC 应用程序内部的“帐户 Controller ”,我没有。
我已经能够设置此过程的客户端(在 Angular SPA 上从 Google 检索用户的 id_token),但我不知道如何继续。
我将 Oauth id_token 发送到哪里?我是否使用扩展补助金?怎么样?
请注意,我没有“帐户 Controller ”类,登录流程由身份服务器完成,JWT 返回到 Angular 应用程序。我需要有关如何获取从 Google 等外部提供商获得的 Oauth id_token 的指导或建议,将其发送到 ASP 核心后端并为该 id_token 创建用户,因此当下次用户从 Google 登录应用程序时,用户对象(应用程序用户)为他获取。
我的设置可以在这个 repo 中找到:https://github.com/robisim74/AngularSPAWebAPI
最佳答案
对于外部提供者,您需要所谓的“隐式流”——这就是它的工作原理。检查快速启动:
https://identityserver4.readthedocs.io/en/release/quickstarts/4_external_authentication.html
关于asp.net - ASP Core、Identity Server 4 和 Angular 2 中的外部提供商登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45687538/