加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 04:09:54 所属栏目:asp.Net 来源:网络整理
导读:我一直在努力让OAuth继续使用我正在研究的API,显然我的做法一定是错的,因为我经常遇到死路一条. 我得到了什么: – 在.NET MVC中实现的API,它将数据结果作为XML或JSON返回. – 它需要API密钥才能使用API??. – 用于管理API密钥的后端网站(X). – 另一个网站(
我一直在努力让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进行硬编码的MVC服务器上实现OAuth,因为这两个网站(X和Y)都不支持OpenId?
>如果我不打算使用OpenId,我是否应该使用另一个库,因为DotNetOpenAuth似乎最关注?
>非常欢迎任何其他适合我需要的方法.

先感谢您!
– 丹麦Johny

解决方法

DotNetOpenAuth在一起使用和单独使用时支持OpenID,OAuth和InfoCard.听起来你正在构建的东西符合DotNetOpenAuth示例“OAuthServiceProvider”所展示的内容.是的,该示例使用OpenID来记录用户,但您可以完全忽略示例中的login.aspx页面,从而与OpenID完全分离.完全支持使用不带OpenID的OAuth.

OAuth类中的几个OpenID相关方法仅用于支持OpenID的“OpenID OAuth”扩展,这不适用于您的情况,因此您可以忽略它们.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读