代码之家  ›  专栏  ›  技术社区  ›  Andres

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

  •  0
  • Andres  · 技术社区  · 15 年前

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

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

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

    我在用 oauth_playground 运行我的测试。

    谢谢

    2 回复  |  直到 15 年前
        1
  •  1
  •   Grace    15 年前

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

    “1.安装的应用程序与谷歌授权服务联系,请求一个或多个谷歌服务的请求令牌。使用“匿名”使用者密钥/机密对请求进行签名。( OAuthForInstalledApps )

        2
  •  0
  •   LetMyPeopleCode    15 年前

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

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

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

    用户关闭浏览器,单击应用程序中的“完成”按钮,然后应用程序将请求发送到yourdomain.com/tokentretrieve.php?authorize=[授权密钥]

    你的网站查找谷歌令牌并将其传回,应用程序完成了OAuth过程。

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