Мое приложение использует авторизацию на Javascript SDK на стороне клиента, а для авторизованного пользовательского приложения извлекает токен доступа из API Facebook, используя cookie facebook с подписанным запросом и предоставляет code
и сохраняет его в базе данных.Когда я должен загрузить новый токен доступа?
Все работает нормально, но мне интересно, когда я должен обновить хранимый токен доступа? Что делать, если пользователь имеет пароль для изменения и снова подключился/подключился.
Как я понимаю, теперь у нее есть новый токен доступа, и приложение должно загрузить его из Facebook. Но как я могу понять, когда я должен проверить новый токен? Проверка каждого запроса с помощью cookie facebook не работает, потому что для каждого пользователя требуется несколько запросов в секунду (событие, если она не изменила пароль). Или, может быть, я что-то делаю неправильно?
Я имею в виду:
- Я Авторизованный пользователь на стороне клиента
- Я печенье с подписью запроса
- Подпись запроса достаточно симпатично, чтобы разрешить пользователю на стороне сервера (проверки учетных данных пользователя)
- Я могу получить
access token
, обратившись к Facebook API, в любое время, когда пользователь запрашивает мое приложение (потому что мне нуженcode
из подписанного запроса). Итак, я делаю это, когда я не сохранилaccess token
или существующийaccess token
истек. access token
просто хранятся в базе данных, и может быть использован в любое время, в другом потоке, может быть, через несколько минут (в среднее у нас нет запроса пользователя и печенья с подписанным запросом)- Что делать, если хранить
access token
не истекли, но утратившие на стороне facebook? Мне нужно получить новыйaccess token
, но cookie ушел в этот момент.
В настоящее время я вижу только один путь: магазин code
из подписанного запроса в Databse, и когда мы обнаружили, что у нас есть недопустимый access token
, попробуйте загрузить его. Но я уверен, что это правильный способ и не так много полезен для большинства случаев.
Означает ли это, что нет возможности объединить аутентификацию Javascript на стороне клиента с аутентификацией на стороне сервера? Я имею в виду, что достаточно для того, чтобы сервер разбирал Facebook cookie для авторизации пользователя на стороне сервера. Но этот файл cookie не содержит токена доступа, а сервер не знает, является ли текущий токен доступа сохраненным, или нет. –
У вас нет оснований вмешиваться в файл cookie, пусть SDK сделают это за вас. С каждым токеном приходит время истечения срока действия (кроме токенов приложения), и вы можете проверить это, чтобы проверить, действительно ли токен действителен, и если да, то сколько времени он имеет. Что касается js/server auth, как я писал, вы можете отправить токен клиента на сервер, но это бессмысленно, если вы его не расширите. –
Кажется, мы говорим о разных вещах. Я обновил свой вопрос, вы можете взглянуть, пожалуйста? –