Токен доступа Facebook oAuth предположительно никогда не истекает

Я использую расширенную систему токенов доступа для продления срока действия токенов oAuth, выпущенных на 60 дней. Эта система работает хорошо, однако один пользователь сообщил, что ему пришлось продолжать выходить из системы. При отладке его токена доступа были следующие результаты:

Application ID
54321
Application
User ID 
12345
Joe Blogs
Issued  
1358275114 (21 hours ago)
Expires 
Never
Valid   True
Origin  Web
Scopes  email friends_events manage_pages publish_actions rsvp_event user_birthday user_events user_location

Facebook отказался от поддержки offline_access в октябре, что якобы было единственным способом создания такого токена доступа с «бесконечным сроком действия». Чтобы подтвердить мой вопрос: почему я вижу бесконечный токен доступа и тот, срок действия которого не истекает через 60 дней?


person Ryan Brodie    schedule 16.01.2013    source источник
comment
Это действительно странно. Я попытался получить расширенный токен для APP1 , я получил токен с истекающим сроком действия 2 months , затем я попытался получить свой APP2 , я получил токен с истекающим сроком действия never (так же, как и в вашем случае). Это ошибка.   -  person Sahil Mittal    schedule 16.01.2013
comment
Возможно баг, пробовал снова и снова, иногда получалось 2 months token, а иногда never expiring!!!   -  person Sahil Mittal    schedule 16.01.2013
comment
Тогда похоже на ошибку, сейчас отправлю отчет. Спасибо за подтверждение +1   -  person Ryan Brodie    schedule 16.01.2013
comment
Интересно, это потому, что сеанс, поддерживающий токен, мог существовать до миграции?   -  person Yuliy    schedule 17.01.2013
comment
Мы никогда не использовали offline_access, даже когда он поддерживался, поэтому маловероятно, что это перенос.   -  person Ryan Brodie    schedule 17.01.2013


Ответы (1)


Этот токен доступа имеет разрешение manage_pages — если вы получили 60-дневный токен доступа пользователя, а затем использовали его для получения токена доступа к странице, токен доступа пользователя, связанный с (бесконечным) токеном доступа к странице, также становится бессрочным.

См. Сценарий 5 на https://developers.facebook.com/roadmap/offline-access-removal/ подробнее

person Igy    schedule 16.01.2013
comment
Сайт никогда не запрашивает конечную точку [Идентификатор пользователя]/аккаунты, поэтому он не может пройти через этот сценарий. - person Ryan Brodie; 17.01.2013
comment
Тогда для чего вы используете разрешение manage_pages? Это все еще наиболее вероятная причина, но я думал, что продление срока действия токена доступа произошло после того, как токен доступа к странице был создан и привязан к токену доступа пользователя. Вы занимаетесь управлением рекламой или чем-то еще, что вызовет бесконечный токен доступа? - person Igy; 17.01.2013
comment
Извините, я допустил ошибку — на самом деле он запрашивает эту конечную точку, чтобы получить доступ к страницам, которыми владеет клиент. Следовательно, это расширит конечную точку или этот запрос вернет третий токен доступа, срок действия которого не истекает? - person Ryan Brodie; 17.01.2013
comment
Запрос /me/accounts возвращает токены доступа к этим страницам как часть результатов, что также приводит к продлению срока действия токена доступа пользователя. - person Igy; 17.01.2013