【问题标题】:Facebook Test users - Access TokenFacebook 测试用户 - 访问令牌
【发布时间】:2013-01-13 11:07:49
【问题描述】:

我正在尝试通过在应用开发者门户上创建一些测试用户来测试我的应用。当我单击测试用户旁边的“切换到”链接时,它会将我从 facebook 注销并以测试用户身份登录。但是我注意到开发人员用户的访问令牌在注销时不会失效。在注销的情况下访问令牌是否应该变得无效(当我实际上像普通用户那样注销facebook时就是这种情况)。这是一个错误还是我在这里遗漏了什么?

【问题讨论】:

    标签: php facebook facebook-graph-api oauth access-token


    【解决方案1】:

    我注意到访问令牌并不总是按预期过期/失效,在像您这样的情况下,您必须手动设置新的访问令牌,而将旧的访问令牌留在某个地方。

    $facebook->setAccessToken('new_access_token');
    

    假设您使用的是 PHP-SDK,您只需要将新用户登录到您的应用即可。

    【讨论】:

    • 谢谢!问题是我将访问令牌缓存在会话变量中。我检查访问令牌是否有效,如果不是,我重新实例化会话。现在如果测试用户从同一个浏览器登录,它可以访问前一个用户的访问令牌,因为它还没有失效
    • 您可以将$facebook->getUser();$facebook->api('/me');// get the id 进行比较,而不仅仅是检查访问令牌的有效性。理想情况下,这些应该是相同的,但如果您真正以新用户身份登录并且旧令牌仍然存在于持久会话中,则可能新用户 ID 已在 facebook 对象中设置,但 access_token/user_id 会话变量有还没有……所以这种比较值得一试。你在使用框架吗?
    • 不,我没有使用任何框架,只是 php facebook sdk。感谢您在这里为我指明正确的方向。检查令牌有效性后,我添加了另一个检查以将会话中的访问令牌与 $facebook->getAccessToken() 进行比较。如果不相等,则表示当前用户尚未通过身份验证。
    猜你喜欢
    • 2011-05-27
    • 1970-01-01
    • 2012-07-11
    • 2013-03-24
    • 1970-01-01
    • 2012-04-12
    • 2021-10-24
    • 2013-01-29
    • 1970-01-01
    相关资源
    最近更新 更多