2013-03-05 2 views
1

Я использую Doorkeeper и Omniauth. Клиент перенаправляет на мою конечную точку авторизации, которая перенаправляется на страницу входа. Пользователю предлагается пройти аутентификацию с помощью Facebook, после чего он войдет в систему и поток вернется в Doorkeeper.Doorkeeper с Omniauth - Как обрабатывать случай, когда пользователь не разрешает?

Моя проблема в том, что если пользователь не хочет войти в систему, поток никогда не возвращается в Doorkeeper. Я ожидаю, что поток вернется к Doorkeeper, который вернет ошибку клиенту.

Как мне это сделать?

ответ

1

Это не проблема. Это активный выбор пользователей, чтобы не подключаться и делать что-то еще.

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

Вы можете сделать javascript setTimeout, если ваша страница все еще находится на вкладке, но с какой целью она будет служить?

Похоже, вы просто передумали это :) Что у вас получилось?

+1

Вы правы, я уже думал об этом. В моей реализации логин открывается во всплывающем окне, который называется js в главном окне после завершения. Когда пользователь выбирает не войти в систему, ничего не вызывается, и поведение в порядке. К счастью, кнопка «отменить» в диалоговом окне входа в FB предполагает, что она всплывает и закрывает окно. – davidrac

+0

получил его, спасибо за обмен. – oma