【发布时间】: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