2016-10-20 7 views
0

Я использую Auth0 для аутентификации пользователей, перенаправляя их на facebook. Но проблема, с которой я столкнулся, заключается в том, что если пользователь вводит неверные учетные данные в первый раз и преуспевает во второй попытке, перенаправления не происходит, вместо этого он приводит меня к странице «Упс !, что-то пошло не так» со следующим сообщением : "invalid_request: Вероятно, вы нажали кнопку« Назад », или есть некоторые проблемы с кукисами, поскольку мы не смогли найти ваш сеанс. Попробуйте войти в систему снова из приложения, и если проблема не исчезнет, ​​обратитесь к администратору».Ошибка Auth0 после неудачной попытки входа в систему

EDIT: Я использую приведенный ниже код Auth0Lock на стороне клиента.

var lock = new Auth0Lock('<%= auth0.clientId %>', '<%= auth0.domain %>', { 
//redirect mode 
    auth: { 
     redirectUrl: '<%= auth0.callback %>', 
     responseType: 'code', 
     params: { 
     scope: 'openid' // Learn about scopes: https://auth0.com/docs/scopes 
     } 
    }, 
    autoclose: true, 
    theme: { 
     logo: 'https://xxxxxx/logo_orange.jpg' 
    }, 
    languageDictionary: { 
     title: "test" 
    } 
}); 
lock.on("unrecoverable_error",function(err) { 
     console.log(err); 
}); 
lock.on("authorization_error",function(err) { 
     console.log(err); 
}); 

Выделив Войти через Facebook Я перенаправлены на facebook URL, который выглядит чем-то вроде link

Там, если я введу адрес электронной/пароль неверно в первый раз, страница обновляется и на втором попробовать, если я преуспеть, вместо того, чтобы вернуть меня в свое приложение, общая страница ошибок auth0 =>doc появляется с ошибкой, о которой я упомянул в верхней части. На паспорт на стороне сервера кажется правильная аутентификация пользователя.

PS: Chrome ведет меня на страницу входа в систему, у которой есть форма входа в систему сверху и в центре, но firefox просто имеет логин в центре страницы. Для Chrome, если я использую верхнюю форму входа и неудачную попытку входа в систему во второй успешной попытке я попал на мою страницу в facebook, т.е. не происходит перенаправления.

+0

Не удалось воспроизвести его в быстрой тесте, я бы предложил вам обновить свой вопрос точными шагами, которые вы используете для воспроизведения проблемы. –

+0

@ JoãoAngelo Обновили описание. Спасибо за помощь. – ninjaas

+0

Вы всегда можете воспроизвести его и через несколько браузеров? Также попробуйте в новом окне Chrome incognito. Я использовал аналогичный код и все еще не в состоянии его воспроизвести, первая попытка я предоставляю неверный пароль, а затем правильный, и я перенаправляюсь к своему приложению. –

ответ

1

Существует, по крайней мере, одна проблема, и это проблема с Facebook. Их Войти страница показывает два входа формы:

enter image description here

TOP форма имеет action равна:

https://www.facebook.com/login.php?login_attempt=1&lwv=100

в то время как CENTER один имеет:

/login.php?login_attempt=1&next=https://www.facebook.com/v2.4/dialog/oauth?redirect_uri=https%3A%2F%2Flogin.eu.auth0.com%2Flogin%2Fcallback&state=[state]&response_type=code&client_id=[client_id]&ret=login&logger_id=1bf0be0d-4b64-43a6-b112-79a30100fa5b&lwv=100

Это означает, что представление верхней формы не выдерживает достаточно информации, чтобы иметь возможность вернуться к вашему приложению. Теперь все еще есть проблема с отображаемой общей страницей Auth0, но я не могу воспроизвести ее. Если вы считаете, что это стоит того, то загрузите HAR для просмотра, даже тот, где вы разделите все файлы cookie, может помочь.


Update:

Посмотрел на HAR, то второй вопрос, как представляется, вызван запросом аутентификации Facebook, который не проходит через Auth0. В вашем приложении есть запрос, но он не заполняется, тогда есть второй запрос, который вызовет страницу с ошибкой Auth0.

Ожидаемый поток:

  1. https://test.auth0.com/authorize
  2. https://www.facebook.com/dialog/oauth
  3. https://www.facebook.com/login.php (аутентификация пользователя здесь)
  4. https://www.facebook.com/v2.8/dialog/oauth
  5. https://test.auth0.com/login/callback
  6. https://localhost:8080/callback

Что вызывает общую страницу ошибок, прежде чем ваш localhost запрос дополняет другой запрос выдается:

  1. https://www.facebook.com/v2.8/dialog/oauth
  2. https://test.auth0.com/login/callback (общая ошибка страницы показано здесь)

ошибка вызвана тем, что https://test.auth0.com/login/callback вызывается без первого прохождения https://test.auth0.com/authorize, чтобы настроить состояние транзакции аутентификации.

С учетом запроса к вашей заявке localhost отмечен как неполный. Я бы начал искать в вашем коде, чтобы узнать, есть ли причина, по которой этот запрос не завершен.

+0

Angelo Вот [gist] (https://gist.github.com/niwsa/c94093ed97ccf9a40c2062d0666 e2537) – ninjaas

+0

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

+0

Похоже, что для хром они фиксировали верхнюю панель входа в систему, теперь я ее не вижу. :) – ninjaas

Смежные вопросы