我希望采用以下体系结构(我已经为这个示例创建了产品名称) :
在一台服务器上运行的 WebAPI 2应用程序 Http://api.prettypictures.com
在另一台服务器上运行的 MVC 5客户端应用程序 Http://www.webpics.com
我希望 Www.webpics.com客户端应用程序使用漂亮的图片应用程序接口:
除了在 Facebook、 Google 等网站注册外部账户以外,以上所有工作都可以完成。
我无法从 API 的单独客户端用户创建 外部帐户的正确流程。
我研究了认证流程中可用的大多数文档,如下所示:

关于 OWIN 的新身份模型,我已经读了几乎所有我能读到的东西。
我研究了 VisualStudio2013中的 SPA 模板。它演示了如何做我需要的大部分,但只有当客户端和 API 在同一个主机上; 如果我想多个客户端访问我的 API,并能够让用户通过谷歌等注册,它不工作,至少我可以告诉 OWIN 认证流中断。
以下是迄今为止的流程:
这就是我被困住的地方。接下来应该发生的是,应该以某种方式通知客户机应用程序,用户已经成功地通过了 Google.com身份验证,并获得一个单一使用的访问代码,以便在以后交换访问令牌。如果需要,客户机应用程序应该有机会提示用户输入与其 Google.com登录相关联的用户名。
我不知道该怎么帮你。
事实上,在这一点上,浏览器最终停留在 Api.prettypictures.com/account/externallogin端点后,从谷歌的回调。这个 API 是为 Google 注册的,但是客户端不知道如何处理。我应该把曲奇传回 Www.webpics.com吗?
在 SPA 应用程序中,它是通过 AJAX 完成的,而 Google.com将返回一个标记作为 URL 片段,这一切都工作得很好,因为它都位于一个域上。但是,这在很大程度上违背了拥有一个多个客户端可以充分使用的“ API”的意义。
救命啊!