【问题标题】:How to use OAuth 2如何使用 OAuth 2
【发布时间】:2013-10-24 03:26:18
【问题描述】:

我有一个应该很简单的应用程序,我需要完成它。然而,OAuth2 让我很困惑。基本上,我需要将一个文件或一组文件上传到BoxDropbox 等文件夹以进行备份。

我已经通过SharpBox。看起来超级简单,但我无法编译它。缺少引用或导致它抛出错误的东西:

无法解析此引用。找不到 “AssemblyAppLimit.CloudComputing.SharpBox.Net40”。检查以确保 该程序集存在于磁盘上。如果您需要此参考 代码。

还有以下错误:

找不到类型或命名空间名称“DropBoxCredentials” (您是否缺少 using 指令或程序集引用?)

据我所知,没有任何更新。如何解决这个问题?

【问题讨论】:

  • 虽然不是完整的答案,但您可能想看看dotnetopenauth.net
  • 如果你一心想自己写,我可以提供一个与 facebook 服务器端交互的工作示例,即 Oauth2,但看起来你已经在使用一些我不熟悉的自定义库使用“AssemblyAppLimit.CloudComputing.SharpBox.Net40”。另外,您在哪里收到此 DropBoxCredentials 错误。编译时?
  • 你好,是的,我有点希望走自己的路。自定义库是sharpbox.codeplex.com 我没有附加到它,只是我能找到的唯一东西,无论如何它都不起作用。很高兴看到身份验证过程的正确 oauth 代码。
  • @Mattbo,你会不会碰巧有一个 o auth 2 身份验证的演示。我查看了 dotnetopenauth.net,但对 C# 较新,我还是有点迷茫。
  • 嘿,我打算修改我的答案以解决您的其他问题,但您一定已经弄清楚了。如果还有问题,请告诉我:)

标签: c# oauth-2.0


【解决方案1】:

您遇到的第一个错误是因为找不到库“AssemblyAppLimit.CloudComputing.SharpBox.Net40”。确保将其添加到可用文件夹中,在项目中引用它,并将其包含在构建中。您遇到的第二个错误是因为您没有提供 Dropbox OAuth 凭据。在发出受保护的请求之前,您必须对用户进行身份验证。我发现这个页面很有用:http://sharpbox.codeplex.com/wikipage?title=SharpBox%20Developer%20Tutorials&referringTitle=Documentation。第 2 步详细说明了如何通过 DropBox 使用 OAuth 进行授权。

OAuth 2 实际上比 OAuth 1 简单得多,而且它只有几个步骤。

  1. 使用外部服务提供的 URL 生成一个完整的 URL,其中包括您的应用唯一消费者密钥、重定向 URL 以及外部服务所需的任何其他权限/属性。
  2. 将用户重定向到步骤 1 中生成的 URL。他们的外部服务将完成其操作并确认您的应用程序的访问。如果一切顺利,您将获得一个独特的成功令牌。
  3. 向外部服务上的第二个位置发出请求,该位置需要 3 个组件 - 您的应用的使用者密钥(如用户名)、使用者机密(如密码)以及成功完成后传递给您的应用的唯一请求令牌第 2 步。外部服务采用这三个参数,如果第 2 步成功,则将一个唯一令牌返回给您,该令牌允许您的应用程序代表该用户发出请求。您应该存储此令牌,因为您将需要它来发出后续请求(我喜欢将令牌与用户的外部服务帐户 ID 一起存储,以便更轻松地调用 API)。

我仍然可以提供 OAuth2.0 的示例,但我查看了 DropBox 文档,他们的核心 API 说它仍然是版本 1,由于各种原因,它更加复杂。在这种情况下,我建议坚持使用第三方专用库,可以抽象出杂乱的细节。

【讨论】:

  • 你好,好吧,如果你有第二个问题,我还有一个问题。我可以从保管箱中获取 oauth_token 问题是如何将其保存到静态位置,以便我可以调用它甚至将其保存在某个地方。我已经粘贴了下面的内容,但它所做的只是打开浏览器执行身份验证过程,然后使用 oauth_token 返回重定向 url。
猜你喜欢
  • 2013-01-30
  • 1970-01-01
  • 2016-03-27
  • 2017-08-20
  • 2013-06-09
  • 1970-01-01
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多