Я включил виджет okta sigin на своем сайте (на странице index.html).Я настроил обратный вызов okta как "/ callback".
В моей веб-конфигурации nginx я включил временное перенаправление URL-адресов с "/ callback" на "index.html".
В index.html я включил скрипт, который проверяет,URL имеет «хэш-параметры», и если он имеет скрипт okta, он проанализирует эти параметры и запустит скрипт входа в систему, иначе он отрисовывает виджет входа в okta.
Это нормально работает в chrome и firefox, но не работает всафари.Я погуглил и обнаружил, что safari удаляет часть хеша после перенаправления URL из-за отсутствия конечной косой черты.
Но чтобы убедиться, что safari удаляет часть хеша, я сделал 2 проверки.
Я включил тестовую ссылку на свой веб-сайт (тот же домен).
<a href="/callback#hello=1">testlink</a>
, когда я нажимаю на эту ссылку, safari перенаправляет на http://localhost/index.html#hello=1
Я открыл какую-то страницу Google (другой домен), я открыл консоль браузера.Я запустил этот скрипт.
let at = document.createElement('a');
at.href="http://localhost/callback#hello=1"
at.click();
На этот раз сафари также успешно перенаправил на "http://localhost/index.html#hello=1"
Я действительно не могу найти, почему часть хеша удаляется, когда okta попадает вURL обратного вызова с частью хэша. Это происходит только в сафари