2017-01-08 4 views
3

Так как мы используем OpenID Connect, нам нужен маршрутизатор Aurelia, чтобы обработать ответ авторизации OpenID Connect, который выглядит следующим образом:Handle успешной OpenID Connect ответ авторизации в Safari <= 9

https://client.example.org/signin-oidc# 
    access_token=SlAV32hkKG 
    &token_type=bearer 
    &id_token=eyJ0 ... NiJ9.eyJ1c ... I6IjIifX0.DeWt4Qu ... ZXso 
    &expires_in=3600 
    &state=af0ifjsldkj 

Для того, для этого мы установили маршрутизатор с состоянием push, как это.

// switch from hash (#) to slash (/) navigation 
routerConfig.options.pushState = true; 

Это успешно работает в большинстве веб-браузеров. Маршрутизатор Aurelia обрабатывает маршрут/signin-oidc, а клиентский код может получить доступ к фрагменту. Хорошо.

Существует проблема в Safari < = 9.0 на Yosemite, однако, поскольку WebKit bug #24701 удаляет фрагмент при переадресации, а успешный ответ авторизации OpenID Connect является перенаправлением (302 Найдено). Результат: браузер отправляет только следующее, в котором отсутствует фрагмент. Нехорошо.

https://client.example.org/signin-oidc 

Чтобы обойти эту проблему, чтобы поставить косую черту перед хэша:

https://client.example.org/signin-oidc/# 
    access_token=SlAV32hkKG 
    &token_type=bearer 
    &id_token=eyJ0 ... NiJ9.eyJ1c ... I6IjIifX0.DeWt4Qu ... ZXso 
    &expires_in=3600 
    &state=af0ifjsldkj 

Это решает ошибку WebKit и Safari < = 9 на Йосемитах включает в себя фрагмент.

Решено? Неа.

Обходной путь прерывает маршрутизатор Aurelia, который больше не может понять часть URI /#. Как мы можем настроить маршрутизатор Aurelia для обработки успешного ответа на авторизацию с сервера авторизации OpenID Connect?

ответ

2

Наша официальная политика поддержки заключается в том, что мы поддерживаем только самую последнюю версию вечнозеленых браузеров (IE не вечнозеленый, поэтому мы поддерживаем IE9 +). Если может быть создано исправление, которое не повредит производительности или переломит текущие браузеры, мы возьмем PR.

+0

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

+0

Что меня удивляет в связи с этим ответом, подразумевается, что Safari 9 на Yosemite не является вечнозеленым браузером. –

+1

Последняя версия Safari для Yosemite - 10. –

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

  • Нет связанных вопросов^_^