我注意到Facebook的身份验证行为最近发生了一些变化:当通过Windows.Security.Authentication.Web.WebAuthenticationBroker,进行身份验证时,我现在会从Facebook向我的应用程序返回一个短期令牌,而不是以前得到的长期令牌。
无论是直接登录还是使用单点登录(http://facebooksdk.net/docs/windows/sso/),我都能看到这种行为。
在调试令牌时,Facebook指出登录请求的来源来自Web。因此,Facebook正在返回短期令牌。
将短期令牌与长期令牌进行交换非常容易,我可以这样做(http://facebooksdk.net/docs/web/handling-expired-access-tokens/)。然而,这需要我传输应用程序的秘密id,而我不希望从应用程序中传输。
有没有人能证实Facebook确实做了这样的改变?还有一个额外的问题;-):有没有办法在不传输应用程序秘密的情况下从Windows应用商店应用程序中获得长寿令牌?
谢谢,安德烈亚斯
-更新4月11日:
我可能偶然发现了一种解释为什么/何时引入了这种变化: WebAuthenticationBroker现在包括了一些启用静默身份验证的方法;我猜这是在微软上周推出Windows8.1更新1时发生的。结合SSO静默身份验证应该可以做到这一点,但我仍然需要验证...
发布于 2014-04-11 19:17:07
我没有使用过这个库,但在我看来,您不可能从它获得长期令牌;因为没有其他方法可以在不使用app-secret的情况下获得扩展令牌。
如果您配置了服务器,则可以为此创建一个小API并从服务器获取扩展令牌。
https://stackoverflow.com/questions/22994694
复制相似问题