gpt4 book ai didi

asp.net-mvc - 基于 MVC 的 API - 如何实现 OAuth?

转载 作者:行者123 更新时间:2023-12-04 12:36:45 24 4
gpt4 key购买 nike

我已经尝试了几个小时来让 OAuth 使用我正在开发的 API 进行工作,显然我的方法一定是错误的,因为我经常遇到死胡同。

我得到了什么:
- 在 .NET MVC 中实现的 API,它以 XML 或 JSON 形式返回数据结果。
- 它需要一个 API key 才能使用 API。
- 一个网站 (X) 作为管理 API key 的后端。
- 另一个网站 (Y),其中包含该 API 从中提取数据的大量数据。

我应该得到什么:
- 允许 API key 从网站 (Y) 访问用户数据的能力,如果他们自己通过 OAuth (1.0A) 允许的话。

我试过的:
- 到目前为止,我的方法一直是使用 DotNetOpenAuth 库,但它几乎都是关于如何实现 OpenId,OAuth 命名空间中的一些类甚至似乎对 OpenId 功能进行了硬编码。所以我一直在尝试查看使用 OpenId 的示例中发生了什么,看看我是否可以使用其中的一部分来实现没有 OpenId 的 OAuth。
- 在服务器端,各种方法包括读取“UnauthorizedTokenRequest”并通过调用 ServiceProvider.Channel.PrepareResponse(unauthorizedTokenRequest).AsActionResult() 将其返回,出于某种原因,它会尝试将 nonce 和 timestamp 两个值添加到崩溃的响应,并跳过它,它仍然返回我无法在客户端读取的响应。

所以我想,我的问题真的是:

  • 是否有指南/文档告诉您我应该在服务器端使用 DotNetOpenAuth 库的哪些部分,以及在此过程中应该在何时使用它们,以便在未硬编码为 OpenId 的 MVC 服务器上实现 OAuth,因为两个网站(X 和 Y)都不支持 OpenId?
  • 如果我不打算使用 OpenId,我是否应该使用另一个库,因为 DotNetOpenAuth 似乎最关注的是?
  • 任何其他更适合我需要的方法都非常受欢迎。

  • 先感谢您!
    - 约翰尼,丹麦

    最佳答案

    DotNetOpenAuth 支持 OpenID、OAuth 和 InfoCard 一起使用和单独使用。听起来您正在构建的内容符合 DotNetOpenAuth 示例“OAuthServiceProvider”所展示的内容。确实,该示例使用 OpenID 来登录用户,但您可以完全忽略示例中的 login.aspx 页面,从而与 OpenID 完全分离。完全支持使用没有 OpenID 的 OAuth。

    OAuth 类中的几个与 OpenID 相关的方法只是为了支持 OpenID 的“OpenID+OAuth”扩展,它不适用于您的情况,因此您可以忽略它们。

    关于您看到的两次添加的 nonce 问题,有时会发生服务提供商不恰本地有两个模块验证传入的 OAuth 请求,每个模块都验证 nonce,因此第二个模块总是拒绝每个请求。您可能会检查这是否导致您的问题。否则,请查看未更改的示例是否适合您,如果可以,请将其与您正在做的事情进行比较,看看可能出了什么问题。 Activating logging也经常有帮助。

    关于asp.net-mvc - 基于 MVC 的 API - 如何实现 OAuth?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6454272/

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