У меня проблема с логикой аутентификации Facebook:
- При загрузке домашней страницы я вызываю
getLoginStatus()
, и если я получаю"connected"
, я перенаправляю пользователя на страницу его учетной записи. Если нет, пользователь может нажать кнопку входа в систему, которая вызываетFB.login()
. - Если пользователь вошел в систему, а затем возвращается на домашнюю страницу (полная загрузка страницы),
getLoginStatus()
возвращает"connected"
, как и ожидалось, и пользователь возвращается на страницу учетной записи. - Однако, когда вошедший в систему пользователь вызывает
FB.logout()
и повторяет шаги 1-2, 2-й шаг всегда будет давать статус входа"unknown"
. Итак,FB.logout()
в основном ломает мою логику подпрыгивания.
Я проверил механику вызовов входа/выхода из системы, и оказалось, что FB.logout()
создает файл cookie fblo_<appId>
со сроком действия 1 год, который не позволяет getLoginStatus()
возвращать надлежащий статус. Кажется, это реальный механизм для удержания людей вне системы, который я могу понять. Однако я не могу понять: почему этот файл cookie не удаляется при успешном вызове FB.login()
?
fblo_<appId>
, который установлен для всего моего домена с путем/
. Так что это довольно липко, учитывая, что его не очищали в течение года. - person krukid   schedule 26.06.2017