有时Facebook在身份验证期间不会返回auth_nonce参数

时间:2011-10-19 16:22:54

标签: facebook facebook-oauth nonce

我在服务器端身份验证流程中使用auth_nonce参数。但是,我遇到了一个问题,有时Facebook在最后一步中没有返回auth_nonce参数,这当然会导致身份验证失败。

通常它运作得很好。这些情况是用户最初登录我的应用程序时,我请求Facebook重新验证它们(auth_type=reauthenticate)。我从未见过这种失败。

当它失败时,它总是在用户登录后,并且他们的auth_token已经过期,并且我在页面加载之间默默地重新验证它们以获得新的auth_token。

在后面这些情况下,URL重定向看起来像这样:

  1. http://myapplication.url(通知令牌已过期,因此请将用户发送给...)
  2. https://www.facebook.com/dialog/oauth?client_id={APP_ID}&redirect_uri=http%3a%2f%2fmyapplication%2eurl%2ffacebook%2fafterlogin&scope=list,of,permissions&display=page&auth_nonce=Vr6EgapnMFIKrbMtVrdcZDTbioGe715pWDtMveA8z4xVNMR5IzGYoPN3rSxf(Facebook重定向到......)
  3. https://www.facebook.com/dialog/permissions.request?app_id={APP_ID}&display=page&next=http%3A%2F%2Fmyapplication.url%2Ffacebook%2Fafterlogin&response_type=code&auth_nonce=Vr6EgapnMFIKrbMtVrdcZDTbioGe715pWDtMveA8z4xVNMR5IzGYoPN3rSxf&fbconnect=1&perms=list%2Cof%2Cpermissions(最后,我们会重定向回......)
  4. http://myapplication.url/facebook/afterlogin?code={Big long code here}#_=_
  5. 在最后一次通话中,我获取了以下网址:

    https://graph.facebook.com/oauth/access_token?client_id={APP_ID}&redirect_uri={THE_PROPER_REDIRECT_URL}&client_secret={APP_SECRET}&code={Big long code here}

    我回复的回复是:

    access_token={AUTH_TOKEN}&expires=5083

    根据文档(以及我在正常身份验证期间的经验),最终回复中应该有一个auth_nonce参数,我可以验证。

    我在这里做错了吗?

0 个答案:

没有答案