我注意到Windows桌面Spotify应用程序在登录屏幕上询问我的facebook用户名和密码。我想知道幕后会发生什么。
当我在浏览器中更改我的fb密码时,我必须在Spotify桌面应用登录屏幕中使用新密码。甚至在Spotify桌面应用程序向我显示fb弹出窗口的情况下,我必须为Spotify本身授予权限。
我知道Spotify使用嵌入式Chromium浏览器引擎来完成所有繁重的工作。但是不是这样反对Facebooks TOS吗?
我的意思是,Spotify是否将我的用户名和密码发布到facebook login.php并拦截结果页面以获取我的cookie?有没有一种文件化的方式来代表用户以正确的方式处理登录到Facebook?
答案 0 :(得分:2)
不,他们正在使用名为auth.login
的旧的,不推荐使用的REST API方法:
https://developers.facebook.com/docs/reference/rest/auth.login/
显然,我不能阻止你在自己的应用程序中使用它,但考虑到这个API的年龄以及REST API现在已经被弃用的程度,依靠它是一个坏主意。
相反,对于Windows桌面应用程序,我相信Microsoft提供的Facebook C#SDK将包含理想的身份验证方法。我更熟悉为Metro Apps提供的名为Web Authentication Broker的新方法。
这些只是在应用程序内部加载一个Web框架,让用户登录到Facebook,然后显示权限对话框(如果需要)。从那里,应用程序可以存储用户的UID,并且可能是他们在auth时收到的长期access_token。这样,他们只需要让用户每60天再次登录一次。
Facebook提供other device-based authentication methods,但大多数仍在进行私下测试,目前推荐用于桌面应用的唯一一个版本在this page下标题为 Windows,OS X和Linux原生应用(位于页面底部)。
2013年12月更新:由于自我撰写此答案后Facebook登录文档发生了重大变化,因此我想指出几个新增内容: