Как открыть модал после успешного перенаправления Oauth2? - PullRequest
0 голосов
/ 20 июня 2019

Я работаю над относительно старым веб-приложением, основанным на архитектуре портала / портлета.

У меня есть вход в приложение, которое загружает мою функцию в модал. В настоящее время в модал встроена навигация, в которой мы показываем и скрываем элементы div, если клиенты перемещаются назад и вперед и обновляют наш вход с помощью Javascript после завершения взаимодействия.

Теперь мы хотим ввести еще одну карточку внутри модального режима, которая требует от клиента доступа к конфиденциальным данным, поэтому мы хотим, чтобы клиент снова проходил аутентификацию.

У нас есть провайдер аутентификации OAuth2 OpenId, который мы вызываем с помощью URL обратного вызова. В настоящее время этот URL-адрес обратного вызова является URL-адресом для главной страницы, поэтому клиент лишен нашего модального опыта, и у нас есть высокая вероятность прекращения участия. Мы хотели бы иметь возможность вернуть их в режим модального взаимодействия, где они остановились перед аутентификацией.

Существуют ли общие стратегии или модели, которые могут помочь достичь этого? Одна вещь, которая может сработать, - это если мы сможем передать метод javascript как часть URL перенаправления.

Я не могу вносить какие-либо изменения в базовый контейнер, но у меня есть свобода добавлять события и обработчики JavaScript.

1 Ответ

1 голос
/ 20 июня 2019

Вы можете использовать параметр состояния в запросе OAuth2. Из RFC 6749:

клиент МОЖЕТ использовать параметр запроса "state" для достижения настройка по запросу

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

https://tools.ietf.org/html/rfc6749#section-3.1.2

...