2014-10-04 2 views
1

Требуется обновить токен аутентификации, срок действия которого истекает. Получил новый токен, но приложение не удалось его сохранить из-за ошибки. Теперь нельзя запросить новый, поскольку старый считается истекшим. Какой доступ к ресурсам доступен?Обновление маркера аутентификации работало, но не удалось сохранить. Что теперь?

ответ

2

Ваш единственный выход здесь является отключите их приложение, а затем снова подключите его.

+0

Спасибо, ясно, что вы правы. Я бы подумал, что нужно каким-то образом протестировать процесс повторного подключения программно, не используя живой токен. – Mike

+0

Вы можете протестировать его самостоятельно, используя свою игровую площадку OAuth, чтобы создать токен, который уже находится в пределах 30-дневного срока действия. Храните эти жетоны, а затем вызывайте свой код повторного подключения, чтобы убедиться, что он работает. –

+0

Спасибо, я сделаю это. – Mike

2

Взгляните: https://developers.facebook.com/docs/facebook-login/access-tokens

Кроме того, Взятые из: https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/

  • Маркер истекает после того, как истечет время (2 часа по умолчанию).
  • Пользователь меняет свой пароль, который делает недействительным токен доступа.
  • Пользователь де-авторизирует ваше приложение.
  • Пользователь выходит из Facebook.

    Токен истекает по истечении указанного времени

Этот сценарий относится к прецеденту, когда пользователь уполномочил ваше приложение в прошлом, но маркер доступа, который вы выпускались имеет expired.When вы пытаетесь чтобы Graph API вызов от ее имени вы получите HTTP 400 со следующей ошибкой в ​​организме:

{ 
     error: { 
     type: "OAuthException", 
     message: "Session has expired at unix time 
      SOME_TIME. The current unix time is SOME_TIME.” 
     }, 
    } 

Сценарий 2: Пользователь меняет свой пароль

This scenario refers to use case where a user has authorized your app in the past and then she changes the password associated with her Facebook account. In this scenario, when you try to make Graph API call on her behalf you will get an HTTP 400 with the following error in the body: 

{ 
    error: { 
    type: "OAuthException", 
    message: "The session has been invalidated because 
     the user has changed the password.", 
    }, 
} 

Please note that you will receive this message even if your app was granted the offline_access permission if the user changed their password. 

Сценарий 3: Пользователь де-авторизует приложение

This scenario refers to a use case where a user has authorized your app in the past, but then she de-authorizes your app by going to the App Dashboard. In this scenario when you try to make a Graph API call on her behalf you will get a HTTP 400 with the following error in the body: 

{ 
    error: { 
    type: "OAuthException", 
    message: "Error validating access token: USER_ID 
     has not authorized application APP_ID", 
    }, 
} 

Please note that even if the user had authorized your app with the offline_access permission access tokens will become invalid if the user de-authorizes your app. 

Сценарий 4: Журналы пользователей из Facebook

Этот сценарий относится к прецеденту, когда пользователь имеет авторизовал ваше приложение в прошлом, а затем выходил из Facebook. Если пользователь разрешил ваше приложение с разрешением offline_access, тогда вызов Graph API работает так, как ожидалось. Если пользователь не предоставить это разрешение, и вы пытаетесь сделать вызов Graph API от имени пользователя, вы получите HTTP 400 со следующей ошибкой в ​​организме:

{ 
    "error": { 
    "type":"OAuthException","message":"Error validating 
     access token: The session is invalid because the 
     user logged out." 
    } 
} 
+0

Этот вопрос должен был быть частью групп вопросов для платформы Intuit Partner (QuickBooks). Извините, если это не ясно. – Mike

+0

Плохо, я неправильно читаю тег. :) – Petro

Смежные вопросы