Я использую вход в систему OIDC с потоком AuthorizationCode, и все работает нормально, за исключением того, что я должен передать некоторые параметры в URI перенаправления.
Маркеры аутентификации OIDC (код, состояние) передаются в POST.
В строке запроса URI перенаправления я передаю некоторые закодированные в URL параметры, например:
https://test.auth0.com/authorize?response_type=code&
nonce=...&
state=...&
code_challenge=...&
code_challenge_method=S256&
client_id=...&
scope=openid%20profile%20email%20api&
response_mode=form_post&
redirect_uri=http%3a%2f%2flocalhost%3a60000%2fDefault.aspx%3fAppToOpen%3dA01
Правильно перезванивает мне на:
http://localhost:60000/Default.aspx?AppToOpen=A01
Передача одного параметраЭто нормально, но когда я отправляю более одного:
https://test.auth0.com/authorize?response_type=code&
nonce=...&
state=...&
code_challenge=...&
code_challenge_method=S256&
client_id=...&
scope=openid%20profile%20email%20api&
response_mode=form_post&
redirect_uri=http%3a%2f%2flocalhost%3a60000%2fDefault.aspx%3fAppToOpen%3dA01%26BodCode%3DSO_2
Он перенаправляет на этот URL:
http://localhost:60000/Default.aspx?AppToOpen=A01&BodCode=SO_2
Как видите, %26
правильно декодируется в &
, но затем кодируется в &
.
Как избежать повторного кодирования?
Или можно вместо этого передать некоторые параметры в POST?