Joh*_*dal 7 api asp.net-mvc oauth dotnetopenauth
我现在已经尝试了几个小时来让OAuth继续使用我正在研究的API,显然我的做法一定是错的,因为我经常遇到死胡同.
我得到的:
- 一个在.NET MVC中实现的API,它以XML或JSON的形式返回数据结果.
- 它需要API密钥才能使用API.
- 用于管理API密钥的后端网站(X).
- 另一个网站(Y),其中包含此API从中提取数据的大量数据.
我应该得到的:
- 能够让API密钥从网站(Y)访问用户的数据,如果他们通过OAuth(1.0A)自己允许的话.
我尝试过:
- 到目前为止,我的方法是使用DotNetOpenAuth库,但几乎所有关于如何实现OpenId,OAuth名称空间中的某些类甚至似乎都硬编码为OpenId功能.所以我一直试图看看使用OpenId的示例中发生了什么,看看我是否可以使用其中的一部分来实现没有OpenId的OAuth.
- 在服务器端,各种方法包括读取"UnauthorizedTokenRequest"并通过调用ServiceProvider.Channel.PrepareResponse(unauthorizedTokenRequest).AsActionResult()返回它.AsActionResult()由于某种原因尝试将两个nonce和timestamp值添加到响应崩溃,并跳过它,它仍然返回一个我无法在客户端读取的响应.
所以我想,我的问题是:
先感谢您!
- 丹麦约翰尼
DotNetOpenAuth 支持 OpenID、OAuth 和 InfoCard 一起或单独使用。听起来您正在构建的内容符合 DotNetOpenAuth 示例“OAuthServiceProvider”所演示的内容。确实,该示例使用 OpenID 来登录用户,但您可以完全忽略示例中的 login.aspx 页面,从而与 OpenID 完全分离。完全支持在没有 OpenID 的情况下使用 OAuth。
OAuth类中的几个与OpenID相关的方法只是为了支持OpenID的“OpenID+OAuth”扩展,这不适用于您的情况,因此您可以忽略它们。
关于您看到的两次添加随机数问题,有时服务提供商不适当地有两个模块验证传入的 OAuth 请求,每个模块都验证随机数,因此第二个模块始终拒绝每个请求。您可以检查这是否导致您的问题。否则,看看未更改的示例是否适合您,如果是,请将其功能与您正在做的事情进行比较,看看可能出了什么问题。 激活日志记录通常也有帮助。