我正在尝试使用/了解Google请求令牌机制。我打算将它用于我开始开发的应用程序,以使用OpenSocial API访问Orkut数据。
我读了这篇document,解释了为已安装的应用程序获取令牌的步骤。本文档告诉您使用Google OAuth API中的OAuthGetRequestToken方法获取请求令牌。访问此功能的手册(available here)。但是必需的参数oauth_consumer_key要求“识别第三方Web应用程序的域”,但我没有域,它是已安装的应用程序。
所以我的问题是,在这种情况下,我应该在这个参数中加入什么?
我正在使用oauth_playground来运行测试。
THX
答案 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服务器的响应的方法的一部分。那就是说,这比使用“匿名”作为你的消费者秘密更糟糕了吗?