2

我注意到 Windows 桌面 Spotify 应用程序在登录屏幕中询问我的 Facebook 用户名和密码。我想知道幕后发生了什么。

当我在浏览器中更改我的 fb 密码时,我必须在 Spotify 桌面应用程序登录屏幕中使用新密码。甚至在某些情况下,Spotify 桌面应用程序会向我显示一个 fb 弹出窗口,我必须在其中授予 Spotify 本身的权限。

我知道 Spotify 使用嵌入式 Chromium 浏览器引擎来完成所有繁重的工作。但是这样做不违反 Facebook 的 TOS 吗?

我的意思是,Spotify 是否会将我的用户名和密码发布到 facebook login.php 并拦截结果页面以获取我的 cookie?是否有记录的方法可以代表用户以适当的方式处理登录 Facebook?

4

1 回答 1

2

不,他们使用的是一种旧的且已弃用的 REST API 方法,称为auth.loginhttps ://developers.facebook.com/docs/reference/rest/auth.login/

显然,我不能阻止您在自己的应用程序中使用它,但考虑到该 API 的历史以及现在已完全弃用 REST API,依赖它是个坏主意。

相反,对于 Windows 桌面应用程序,我相信微软提供了一个 Facebook C# SDK,它将包含理想的身份验证方法。我更熟悉他们为 Metro Apps 提供的新方法,称为Web Authentication Broker

这些几乎只是在应用程序中加载一个 web 框架,让用户登录到 Facebook,然后显示权限对话框(如果需要)。从那里,应用程序可以存储用户的 UID,并且可能是他们在身份验证时收到的长期存在的 access_token。这样,他们只需要每 60 天要求用户重新登录一次。

Facebook提供了其他基于设备的身份验证方法,但大多数仍在私人测试中,目前唯一推荐用于桌面应用程序的方法在此页面标题Windows、OS X 和 Linux 本地应用程序下(底部页)。

2013 年 12 月更新:因为自从我写了这个答案以来,Facebook 登录文档发生了很大变化,我想指出一些新增内容:

  • 手动构建登录流程详细介绍了桌面应用程序可以用来登录用户的步骤。这里的新功能是,Windows 8 应用程序现在可以在登录对话框的 redirect_uri 中使用其深层链接 ID,这意味着它会在完成或取消时从登录对话框返回其应用程序的多任务。这是对之前 WebView 设置的改进,因为用户的默认浏览器可能已经让他们登录到 Facebook。
  • Windows Phone 登录是 Windows Phone 8 应用程序使用的特殊指南。
于 2012-07-26T22:43:10.630 回答