хэштеги (#) в параметрах, закодированных в URL, декодированных при перенаправлении
У меня есть две серверные системы ... один хостинг приложения, а другой хостинг аутентификации / авторизации. Когда приложение обнаруживает, что пользователь неПока пользователь не вошел в систему, он перенаправляет на сервер авторизации и передает в качестве параметра URL-адрес, первоначально запрошенный пользователем, чтобы после аутентификации пользователь был перенаправлен обратно на сервер приложений на точный первоначально запрошенный URL-адрес.
Однако, если этот исходный URL-адрес содержит #, вся подпрограмма скрывается. Похоже, что браузеры декодируют закодированный параметр url и, как следствие, сбрасывают что-либо после # на пол. Я'мы пробовали это на Chrome, Safari и Firefox.
Пример:
Оригинальный URL:
https://xxx.com/#/main/by-users?param1=53¶m2=13¶m3=39
URL перенаправления:
https://yyy.com/signin/?returnURL=https%3A%2F%2Fxxx.com%3A80%2F%23%2Fmain%2Fby-users%3Fparam1%3D53%26param2%3D13%26param3%3D39
Браузер показывает:
https://yyy.com/signin/?returnURL=https%3A%2F%2Fxxx.com%2F#/main/by-users?param1=53¶m2=13¶m3=39
Как видите, все, включая и после #, декодируется. Таким образом, сервер никогда не получает полныйReturnUrl» значение параметра. Это в основном просто получает
https://xxx.com/
Это должно быть частью некоторой спецификации где-то, хотя кажется безумным, что закодированный # должен быть декодирован и обрабатываться так, как если бы он никогда не кодировался в первую очередь. Но как обойти это?
Благодарю.