来自外部应用程序的OpenSocial身份验证

时间:2009-10-22 03:02:41

标签: php oauth opensocial myspace

我正在研究一个与power.com不太相似的网络项目,我试图在一个网站下统一几个不同的社交网站,允许用户注册一次系统,然后添加尽可能多的个人社交网络帐户(Facebook,MySpace,Orkut等),因为系统可以处理,允许他们在一个地方浏览他们各自的个人资料信息。

简单地说,我似乎无法找到将任意用户身份验证到其社交网络帐户的方法。

我一直在研究OpenSocial规范以及OpenSocial PHP client项目,但我似乎遗漏了一些东西,因为一切看起来都是循环依赖的。

我的第一个问题是,出于测试目的,我有一个MySpace消费者密钥和消费者秘密,但每当我尝试使用MySpace执行三方认证时,没有选择以其他人身份登录< / i>的。此外,它执行外部重定向,这有点不受欢迎(作为这个最终社交网络“门户”的用户,我不必每次添加新帐户时都要经历重定向过程。)

如何以编程方式验证任意用户并允许他们访问其帐户信息(最好不使用外部重定向)?

其次,两条腿的身份验证需要userId(通常是一个任意整数),用于标识要检索其信息的任意用户。但是,当我输入MySpace OpenSocial ID以及给定的消费者密钥和消费者密钥时,我会收到401 Access Denied错误。此外,为了将来使用此ID,似乎我需要先对用户进行身份验证...但该身份验证似乎需要ID。

我很确信我错过了一些微不足道的东西,但是因为我的生活无法弄清楚它是什么。非常感谢帮助!

2 个答案:

答案 0 :(得分:5)

从技术上讲,这不是我的答案,但OpenSocial的开发人员向我提供了有关我的问题的以下信息(强调我的):

  

三脚OAuth围绕着   重定向回你所在的网站   认证,没有   避免它的方法。这不是最多的   方便的经验,但允许   用户与您分享他们的数据   网站同时保留他们的密码   私人的。 任何需要的设计   用户输入他们的MySpace密码   在你的网站上的表格是   被认为是一种反模式,应该   要避免。你可能会   尝试在弹出窗口中重定向   为了使体验有点   对用户来说不那么刺耳(目前   PHP客户端没有这样做   很容易,但如果你跟进了   opensocial-client-libraries@googlegroups.com   有人可以帮助你完成工作   那个过程)。

     

关于无法做到   改变用户,我相信   MySpace正在做你的情况   检查MySpace cookie和   预先填充您的帐户   信息。如果您是用户   访问该网站,但没有登录   MySpace,你应该得到一个完整的   用户名/登录框组合。那里   也应该是一个按钮或链接   某处可以说“我不是这个用户”   并使用其他凭据登录。

     

对于双腿,你需要   有与之相关的应用程序   安装的消费者密钥/秘密   您的数据的任何用户的个人资料   希望访问。两条腿大部分都是   适用于开发人员   目前正在运行一个社交小工具   容器和希望访问社交   他们的应用程序用户的数据   带小工具渲染的乐队。在此   例如,应用程序服务器会   已经拥有用户的OpenSocial ID   (来自签名的makeRequest)和   用户已经拥有该应用程序   安装在他们的MySpace个人资料上。)

     

大部分内容都包括在内   在http://wiki.opensocial.org/index.php?title=OAuth_Use_Casesif   你想了解更多信息。

基本上,这使得在外部应用程序上使用双腿认证成为不可能;明确地设计了两条腿,不适用于这种情况。此外,似乎power.com确实采用了让用户提供其实际的Orkut / MySpace / etc凭证的反模式,因此可以解释这一点。

清除我的Cookie,通过MySpace验证我的身份。但是,我接着提出了另一个关于Orkut身份验证如何工作的问题,因为它似乎不支持3-legged身份验证。以下是我收到的回复:

  

Orkut有兴趣支持   这个,所以你将能够允许用户   与您分享他们的信息   将来“正确”应用。

     

相应的双腿应用程序会   需要转发当前的观众   OpenSocial ID返回到您的服务器,   可能还有授权   你自己生成的令牌,以便   您可以在orkut上链接用户的会话   在您自己的服务器上进行会话。   老实说,它可能无法使用   足以支持独立登录   系统

基本上,不,Orkut真的不能挂钩到外部应用程序(至少,还没有),而不诉诸反模式。

如果有人对此主题有任何进一步的信息,请随时分享!

答案 1 :(得分:0)

这里也提到了模式http://sites.google.com/site/oauthgoog/2leggedoauth/2opensocialrestapi

基本上很多mashup都需要这个功能:

  

第三方网站没有   小工具想要获得最终用户   允许访问他们的数据   社交网络,例如   下载他们的朋友列表,或获取   允许发布到他们的活动   流