Обновление токена доступа с истекшим сроком действия для определенного пользователя

Приложение, которое я создаю, сопоставляет user_id с несколькими учетными записями facebook. У меня есть токены доступа для каждой из этих сопоставленных учетных записей, и все работает хорошо. Однако существует проблема, когда срок действия одного из этих токенов доступа истекает, но пользователь вошел в Facebook как пользователь, отличный от того, которому принадлежит токен доступа с истекшим сроком действия.

Я прочитал все, что есть о получении нового токена доступа для вошедшего в данный момент пользователя, но ничего не нашел о случае, когда пользователь, срок действия токена доступа которого истек, не вошел в Facebook.

Буду признателен за ваши мысли и возможные решения.


person Marius Constantin    schedule 20.09.2012    source источник


Ответы (2)


Пользователи не могут иметь несколько учетных записей Facebook, поэтому эта часть вашего вопроса не совсем имеет смысл, но в целом, если срок действия токена доступа истекает, вам нужно, чтобы пользователь вернулся в ваше приложение и прошел через Аутентификация выполняется снова, что даст вам новый токен доступа для этого пользователя.

person Igy    schedule 20.09.2012
comment
Спасибо, Игги. Мое приложение сопоставляет пользователей (локальных пользователей, а не facebook) с учетными записями facebook. Таким образом, мой пользователь A может иметь привязанные к нему учетные записи Facebook fb1 и fb2. Это то, что я имел в виду. - person Marius Constantin; 22.09.2012
comment
Я до сих пор не совсем понимаю, как это не означает, что у людей есть несколько учетных записей Facebook, но тем не менее — после истечения срока действия токена им нужно снова пройти процесс аутентификации. - person Igy; 22.09.2012
comment
Ну, я полагаю, что вы действительно имеете в виду, когда говорите, что люди не могут иметь несколько учетных записей Facebook, так это то, что как только пользователь A выходит из учетной записи fb1 и снова входит в Facebook, используя учетную запись fb2, токен доступа OAuth2 для fb1 автоматически становится недействительным. Но даже в этом случае, поскольку у меня есть идентификаторы пользователей как для fb1, так и для fb2, могу ли я принудительно выполнить повторную аутентификацию на fb1? Я знаю, что могу выйти из системы вошедшего в систему пользователя... хм, возможно, это сработает таким образом... - person Marius Constantin; 22.09.2012

Я считаю, что единственный способ получить обновленный токен доступа — это снова пройти весь процесс аутентификации с начального экрана входа в систему.

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

person James Ford    schedule 28.09.2012