![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
Неожиданная подстава от сафари.Делаю авторизацию с помощью fb sdk. использую следующий код для показа окошка авторизации:
function updateStatusAndLogin() { FB.getLoginStatus(function(response) { //alert("login status:"+response.status); if(response.status!="connected") { FB.login(function(response) { }); } },true); } Запрос FB.getLoginStatus перед собственно FB.login(..) нужен на случай, если fb-сессия протухла.Второй параметр true указывает sdk что надо сделать запрос к серверу, а не брать статус из кеша.Без этого запроса sdk говорит 'user already connected' и отказывается показывать окно авторизации. Так вот все браузеры нормально работают, а вот в сафари ко времени когда приходит обновленный статус, браузер забывает что был клик юзера и автоблокировщик блокирует попап с формой авторизации.Если отключить автоблокировку все начинает работать.Причем субъективно запрос на статус занимает не больше секунды. Я выложил тестовую флэшку с проблемой.Кнопка слева просто сразу дергает FB.login() она работает, кнопка справа - сначала запрашивает обновленный статус и потом FB.login() с ней проблема(причем как в макоси, так и под виндой).Кто подскажет как можно обойти? Оч. не хотелось бы просить юзера отключать блокировку попапов. |
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
Частично обошел проблему за счет использования long lived token с периодом полураспада 2 месяца. Правда все равно при его протухании надо опять показывать auth form
|
![]() |
![]() |
Часовой пояс GMT +4, время: 07:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|