Проблема с перенаправлением входа в Facebook

У меня есть сайт с рабочим логином Facebook.

Проблема возникает, когда пользователь впервые заходит на сайт (или после очистки куки).

Поток пользователей следующий:

  1. Пользователь нажимает «Зарегистрироваться через Facebook».
  2. Пользователь перенаправляется на аутентификацию Facebook
  3. Если Пользователь соглашается, он/она перенаправляется на страницу «Регистрация».

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

Для этого URL можно указать только 2 возможных представления.

  1. Страница регистрации, в которой в качестве параметров отправляются только некоторые данные формы.
  2. Окно предупреждения при успешном сохранении БД

Таким образом, я исключил PHP как возможную причину перенаправления.

Я включил JavaScript, управляющий взаимодействием с Facebook.

Весь другой соответствующий код можно найти в HTML-коде страницы.

Страницу можно найти по адресу http://trioisrael.com.

function fb_login(){
    FB.login(function(response) {

        if (response.authResponse) {
            window.location = "http://trioisrael.com/signup"
            //console.log(response); // dump complete info
            access_token = response.authResponse.accessToken; //get access token
            user_id = response.authResponse.userID; //get FB UID

            FB.api('/me', function(response) {
                user_email = response.email; //get user email
                // you can store this data into your database
            });

        } else {
            //user hit cancel button
            alert('We use facebook to make sure that everyone is really who they say they are');

        }
    }, {
        scope: 'user_photos,user_birthday'
    });
}

person Dan Green-Leipciger    schedule 25.11.2013    source источник
comment
Попытка сделать что-то еще после присвоения нового значения для window.location (конечно, это должно быть window.location.href) не имеет смысла.   -  person CBroe    schedule 25.11.2013
comment
@CBroe - я ничего не пытаюсь сделать после перенаправления. Facebook аутентифицируется на своем сервере, а затем отправляет обратно некоторые зашифрованные пользовательские данные. Затем моя страница проверяет, вошли ли они в систему, и позволяет им продолжить работу с формой. Проблема в том, что они не сразу распознаются как авторизованные с первой попытки. Они перенаправляются на главную страницу, переходят по ссылке и авторизуются.   -  person Dan Green-Leipciger    schedule 25.11.2013
comment
Конечно, вы пытаетесь это сделать, потому что у вас есть дополнительный код после строки window.location.   -  person CBroe    schedule 25.11.2013
comment
Спасибо CBroe, это решило проблему. Не могли бы вы опубликовать это как ответ, чтобы я мог принять его.   -  person Dan Green-Leipciger    schedule 25.11.2013


Ответы (1)


Попытка сделать что-то еще после присвоения нового значения window.location (которое, конечно, должно быть window.location.href) не имеет смысла.

Если вы хотите выполнить дополнительные действия после входа в систему, сделайте это до перенаправления пользователя в другое место.

person CBroe    schedule 25.11.2013