hashtags (#) em parâmetros codificados em URL decodificados no redirecionamento
Eu tenho um sistema de dois servidores ... um hospedando o aplicativo e o outro hospedando a autenticação / autorização. Quando o aplicativo detecta que o usuário ainda não está conectado, ele redireciona para o servidor de autenticação e passa, como parâmetro, o URL originalmente solicitado pelo usuário para que, após a autenticação, o usuário seja redirecionado de volta ao servidor de aplicativos para o URL exato originalmente solicitado.
No entanto, se esse URL original contiver um #, a rotina inteira será escolhida. Parece que os navegadores estão decodificando o parâmetro codificado url e, como conseqüência, descartando qualquer coisa após o # para o chão. Eu tentei isso no Chrome, Safari e Firefox.
Exemplo:
URL original:
https://xxx.com/#/main/by-users?param1=53¶m2=13¶m3=39
URL de redirecionamento:
https://yyy.com/signin/?returnURL=https%3A%2F%2Fxxx.com%3A80%2F%23%2Fmain%2Fby-users%3Fparam1%3D53%26param2%3D13%26param3%3D39
Navegador mostra:
https://yyy.com/signin/?returnURL=https%3A%2F%2Fxxx.com%2F#/main/by-users?param1=53¶m2=13¶m3=39
Como você pode ver, tudo incluindo e depois do # é decodificado. Assim, o servidor nunca recebe o valor do parâmetro 'returnURL' completo. Basicamente só fica
https://xxx.com/
Isso deve ser parte de alguma especificação em algum lugar, embora pareça insano que um # codificado deva ser decodificado e tratado como se nunca tivesse sido codificado em primeiro lugar. Mas como se contornar isso?
Obrigado.