Hashtags (#) in URL-codierten Parametern, die bei der Umleitung decodiert wurden

Ich besitze ein System mit zwei Servern, von denen einer die App und der andere die Authentifizierung / Autorisierung hostet. Wenn die App erkennt, dass der Benutzer noch nicht angemeldet ist, leitet sie ihn zum Authentifizierungsserver weiter und übergibt als Parameter die ursprünglich vom Benutzer angeforderte URL, sodass der Benutzer nach der Authentifizierung zurück zum App-Server an umgeleitet wird genaue URL ursprünglich angefordert.

Wenn diese ursprüngliche URL jedoch ein # enthält, wird die gesamte Routine abgespritzt. Es scheint, dass die Browser den URL-kodierten Parameter dekodieren und in der Folge alles nach dem # auf den Boden fallen lassen. Ich habe dies auf Chrome, Safari und Firefox versucht.

Beispiel:

Ursprüngliche URL:

https://xxx.com/#/main/by-users?param1=53&param2=13&param3=39

URL umleiten:

https://yyy.com/signin/?returnURL=https%3A%2F%2Fxxx.com%3A80%2F%23%2Fmain%2Fby-users%3Fparam1%3D53%26param2%3D13%26param3%3D39

Browser zeigt:

https://yyy.com/signin/?returnURL=https%3A%2F%2Fxxx.com%2F#/main/by-users?param1=53&param2=13&param3=39

Wie Sie sehen können, wird alles einschließlich und nach dem # dekodiert. Auf diese Weise erhält der Server niemals den vollständigen Parameterwert 'returnURL'. Es wird im Grunde nur

https://xxx.com/

Dies muss irgendwo Teil einer Spezifikation sein, obwohl es verrückt erscheint, dass ein kodiertes # dekodiert und behandelt werden sollte, als ob es niemals zuvor kodiert worden wäre. Aber wie kommt man damit um?

Vielen Dank.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage