3

我正在编写一个供我的 JavaScript 应用程序使用的 API(相同的域,API 在api.example.com和站点example.com以及第 3 方开发人员(移动设备、桌面等)。现在我想使用 OAuth,但我不知道工作流程是怎样的当同时使用 OAuth 和使用具有相同来源策略的应用程序时。

如何在我的 Web 应用程序中对用户进行身份验证?当我发送用户名和密码时,我可以检查请求是否来自我的域,然后返回令牌吗?令牌将存储在 cookie 中,并在每次请求时发送回服务器。所以有2个部分:

  1. 如果请求来自我的域,只需检查令牌,否则会抛出 HTTP 异常。
  2. 如果不是我的域,请执行 OAuth 身份验证。

这可能吗?如何在 asp.net Web API 中进行设置?(主要是关于检查请求是否在同一个域中的部分)

4

1 回答 1

2

我猜要登录到您的网络应用程序,您没有使用 OAuth,而只是接受用户名和密码并开始会话?如果是这样,您实际上不必为自己的站点使用 OAuth。

将会话cookie 设置为有效*.example.com,您应该能够在site.example.com和上验证该 cookie api.example.com

例子:

  1. 请求进入api.example.com/verify_credentials.json
  2. 如果 OAuth 验证成功,则提供响应。
  3. 如果没有,请尝试 Cookie 验证 - 如果成功则服务
  4. 402 Unauthorized如果两者都失败则返回。

这是一个关于跨子域共享 cookie 的线程:ASP.NET Subdomain Cookie (parent and one subdomain)

于 2012-04-20T10:11:34.203 回答