【问题标题】:Has Facebook authentication behaviour for Windows Store Apps changed?Windows 应用商店应用程序的 Facebook 身份验证行为是否已更改?
【发布时间】:2014-04-12 00:59:06
【问题描述】:

我最近注意到 Facebook 的身份验证行为发生了一些变化:当通过 Windows.Security.Authentication.Web.WebAuthenticationBroker 进行身份验证时,我现在从 Facebook 将一个短期令牌返回到我的应用程序,而不是我之前使用的长期令牌之前得到的。

如果我直接登录或是否使用 SSO (http://facebooksdk.net/docs/windows/sso/),我都可以看到这种行为。

在调试令牌时,Facebook 指出登录请求的来源来自 Web。因此,Facebook 将返回短期令牌。

用长期令牌交换短期令牌非常容易,我可以做到这一点(http://facebooksdk.net/docs/web/handling-expired-access-tokens/)。但是,这要求我传输应用程序密钥 ID,我不希望从应用程序传输。

谁能确认 Facebook 做了这样的改变?还有一个额外的问题 ;-):有没有办法在不传输应用秘密的情况下仍然从 Windows 应用商店应用中获取长期存在的令牌?

谢谢, 安德烈亚斯

--4 月 11 日更新:

我可能偶然发现了为什么/何时引入此更改的解释:WebAuthenticationBroker 现在包括一些启用静默身份验证的方法;我猜这发生在微软上周推出 Windows 8.1 Update 1 时。与 SSO 静默身份验证一起应该可以解决问题,但我仍然需要验证...

【问题讨论】:

  • 只是想问一下,为什么要扩展令牌?
  • 因为用户必须每天重复相同的登录/授权步骤,这对用户并不友好。
  • 您使用 facebook graph api 在您的应用中执行了哪些操作?
  • 无。我只是通过 FQL 从用户的 Facebook 流中获取项目。
  • 但为了便于讨论,您可以放心地假设该应用程序充当 Win 8 的 Facebook 客户端。老实说,我不知道有任何 Facebook 客户端要求用户在 1 小时后重新进行身份验证.如果我这样做了,我就不会使用它们 ;-)

标签: c# .net facebook windows-8.1 facebook-access-token


【解决方案1】:

我没有使用过这个库,但在我看来你不可能从中获得长期存在的令牌;因为在不使用app-secret 的情况下没有其他方法可以获取扩展令牌。

如果您配置了服务器,则可以为此创建一个小型 API 并从您的服务器获取扩展令牌。

【讨论】:

  • 是的,获取短期令牌在某种程度上与 SDK 和 WebAuthenticationBroker 的描述一致。直到最近,整体行为还是不同的。因此,我想知道是否有更多人见证了这种变化。在最好的情况下,我可以更清楚地弄清楚变化发生在哪里(在 Facebook 或微软方面)——以及在变化之后可能有哪些替代解决方案。是的,设置服务器绝对是这些选择之一,但绝对不是我的首选。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-31
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
相关资源
最近更新 更多