2012-08-14 88 views
0

我正在尝试构建一个应用程序,用户可以在该应用程序中指定网站的URL,并且我的网页将转到该URL并获取信息。如果URL需要用户身份验证来访问信息,那么我希望使用OAuth 1.0来做到这一点。通用OAuth - 有可能吗?

的问题是,我看到这个skimped了在OAuth的教程,只要我可以告诉我的应用程序已,不知何故,与我请求从信息页面注册。我的理解是,对于我希望我的用户能够使用的任何页面,我必须自己单独访问该页面并注册我的应用程序。完成之后,它将为我提供消费者密钥和秘密,以便将其硬编码到我的页面中,然后在访问请求URL,授权URL和访问URL时使用这些密钥和秘密。当然,这对我来说并不合适,因为我希望我的用户能够指定任意页面来访问信息,然后将这些信息提供给这些页面,以便让我的应用访问其中的信息。

另外,从我所知道的,有三个URL,我需要知道:

  • 请求的URL,这是我送我的消费键/隐匿对,以便接收新的,未经授权的请求令牌。
  • 授权URL,我将用户引导到具有查询参数的请求令牌和oauth_callback。用户将被重定向到我的网页外,登录到外国站点,授予我访问权限,然后重定向到oauth_callback中指定的URL,并提供有关他们是否授权我的请求的信息。
  • 的访问网址,这是我送授权的请求令牌,预期回报来获得访问令牌。

然后,一旦我拥有了所有这些,我可以使用访问密钥/秘密对作为用户名和密码。我将它们存储在与用户相关的cookie中,并且在我访问网站信息时使用它们。在网站的交易结束时,它会在我的请求中查找这些信息,如果我将它正确包含,那么我将被允许访问我请求的任何用户数据。

正在尝试做什么 - 为网站提供通用的OAuth访问权限 - 可能,还是需要我作为应用程序所有者向服务器注册我的应用程序以便OAuth访问它?如果有可能,那么我如何获得请求URL,授权URL和访问URL?

+0

只要你解决的OAuth,何乐而不为2.0吗?此外,你需要问*一个*清晰,简洁的问题。这是一组问题。 – Madbreaks 2012-08-14 21:23:15

+0

我编辑这个试图问一个明确的问题,但我想我真的问两个。不过,它们是非常密切相关的。至于1.0与2.0,阅读大约2.0并没有给我留下好印象。 – 2012-08-14 21:33:33

回答

1

这不是真的有可能。以下是您遇到的问题的简短列表:

  1. 您需要为所有网站安装应用程序令牌(例如您的应用程序在资源所有者处注册)。这是不是你可以在飞行中从不同的资源拥有者
  2. 不一致的OAuth网址架构。 Twitter有不同于Foursquare的谷歌不同的OAuth网址结构。如果没有对其进行硬编码,找到这些网址是不太可能的。
  3. 范围。当您为许多资源所有者进行OAuth注册时,您需要指定一个范围。你将如何知道的范围应该是