已安装应用程序的OAuth请求令牌

时间:2009-12-16 16:00:03

标签: javascript oauth social-networking opensocial

我正在尝试使用/了解Google请求令牌机制。我打算将它用于我开始开发的应用程序,以使用OpenSocial API访问Orkut数据。

我读了这篇document,解释了为已安装的应用程序获取令牌的步骤。本文档告诉您使用Google OAuth API中的OAuthGetRequestToken方法获取请求令牌。访问此功能的手册(available here)。但是必需的参数oauth_consumer_key要求“识别第三方Web应用程序的域”,但我没有域,它是已安装的应用程序。

所以我的问题是,在这种情况下,我应该在这个参数中加入什么?

我正在使用oauth_playground来运行测试。

THX

2 个答案:

答案 0 :(得分:1)

根据我在文档中阅读的内容,以下有关获取请求令牌的说明意味着您只需将“匿名”作为使用者密钥传递...

“1。已安装的应用程序与Google授权服务联系,要求提供一个或多个Google服务的请求令牌。请求使用”匿名“消费者密钥/密钥进行签名。 (OAuthForInstalledApps

答案 1 :(得分:0)

诀窍是创建混合身份验证过程。您在自己的域中注册Web应用程序,通过OAuth for Web Apps流程为用户授予Web应用程序,然后实施一种机制,使其安装的应用程序可以从Web应用程序中获取该授权。

我对此的想法是,已安装的应用会向您的网站发送密钥对请求。它将收到一个启动密钥和一个授权密钥,这两个密钥都存储在网站的数据库中一次性使用。

该应用程序将使用任何机制启动外部浏览器,指向它 yourdomain.com/authorizestart.php?initiate=[initiate code]。该网站将代码存储在会话变量中,然后将用户发送给Google进行身份验证。当身份验证成功并且Google使用下一个令牌向用户发回时,您将其存储在与启动密钥相关的数据库条目中。

用户关闭浏览器,点击应用中的“完成”按钮,然后应用会向yourdomain.com/tokenretrieve.php?authorize=[authorize key]发送请求

您的网站会查找Google令牌并将其传回,该应用会完成Oauth流程。

这个问题是您必须与应用分享您在注册过程中创建的“消费者秘密”。有人可以对其进行反编译或尝试捕获其输出并发现您的密钥,这是加密来自Google服务器的响应的方法的一部分。那就是说,这比使用“匿名”作为你的消费者秘密更糟糕了吗?