Я думаю о том, чтобы связать приложение Facebook на основе JavaScript с существующим веб-сайтом, у которого есть собственные учетные записи, но есть вопрос о конкретной пользовательской ситуации.
Сайт работает почти 100% времени на «общих» компьютерах, например, в центрах карьеры. Пользователь A заходит на мой веб-сайт, входит на сайт, а затем авторизует приложение Facebook, которое сохраняет свои сеансы в браузере, а затем фактически регистрирует их на Facebook.com.
Пользователь А теперь покидает мое приложение, выйдя из моего сайта, но не закрывая браузер.
Пользователь B прибывает, входит на мой сайт под своим логином, но сеанс Facebook все еще активен (из-за открытого браузера), поэтому любые интеграции приложений FB, которые я включил, будут отображаться так, как если бы это был пользователь A, исправить?
Итак, вопрос в том, каковы рекомендуемые способы борьбы с этим? На ум приходят два варианта:
Когда пользователь выходит из моего веб-сайта, я запускаю вызов FB.logout, так что все сеансы уничтожаются. Плюсы - я могу гарантировать, что при входе пользователя на сайт старые сессии не будут зависать. Минусы - пользователь, который возвращается вскоре после ухода, должен будет повторно войти в FB, а также на мой сайт, чтобы увидеть интеграцию FB - я бы хотел, чтобы пользователю ВСЕГДА не приходилось делать два входа. Во-вторых, принуждение к выходу из FB.logout, когда они покидают мой сайт, убивает все активные сеансы, которые они проводят на facebook.com, что создает неудобства для пользователей, поскольку они не могут «понять», почему выход из моего сайта имеет какое-либо отношение к Facebook. com, а затем придется повторно войти на facebook.com.
Второй вариант: когда пользователь авторизует приложение FB, я беру его идентификатор участника и сохраняю его локально и постоянно (база данных). Затем, когда пользователь возвращается на сайт и входит в систему, я проверяю его статус авторизации в FB, а при входе в FB извлекаю его идентификатор участника и сравниваю его с тем, который я сохранил локально. Если они совпадают, у меня есть правильный пользователь, если нет, я делаю FB.logout и заставляю их войти в FB. Плюсы - это должно гарантировать, что у меня всегда будет правильный пользователь на сайт. Минусы - не уверен, что получить, возможно сохранение идентификатора участника.
Есть ли какие-либо предложения или указатели на «наилучшую практику», когда речь идет о том, чтобы текущий пользователь действительно был тем, кто связан с учетной записью FB, особенно в этой ситуации «общих вычислений», когда сеансы могут перекрываться?
Спасибо