gpt4 book ai didi

security - 具有同源策略和 OAuth 的 REST API 身份验证

转载 作者:行者123 更新时间:2023-12-02 14:42:09 24 4
gpt4 key购买 nike

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

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

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

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

最佳答案

我猜想登录您的网络应用程序时您没有使用 OAuth,而只是接受用户名和密码并启动 session ?如果是这样,您实际上不必为自己的网站使用 OAuth。

将 session 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)

关于security - 具有同源策略和 OAuth 的 REST API 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10218136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com