如何解决URLSearchParams使用特殊@错误地编码密码
我觉得我在这个问题上缺少基本的东西。希望有人可以给我指出解决方案或某种权威解决方案。
我们有一个SPA,该SPA调用以下代码来登录Keycloak oauth2端点。当发送包含“ @”的密码时,它们将被编码为%40,当然,用户将永远无法登录。我意识到这样做的原因是将其作为查询参数发送。但是我还没有遇到一个适用于react / redux和typescript的解决方案。虽然,看起来php对此有所帮助。
const makeAuthCall = (
id: NullableTypes.NullableString,password: NullableTypes.NullableString,refreshToken: NullableTypes.NullableString,): Promise<Response> => {
let body: URLSearchParams = new URLSearchParams();
const headers = new Headers({
'content-type': 'application/x-www-form-urlencoded;charset=UTF-8',});
body = new URLSearchParams({
client_id: OAUTH_CLIENT_ID,//eslint-disable-line
client_secret: OAUTH_CLIENT_SECRET,//eslint-disable-line
password: password as string,username: id as string,grant_type: OAUTH_GRANT_TYPES.PASSWORD,//eslint-disable-line
});
const requestInit: RequestInit = {
headers,method: 'POST',body: body,};
return fetchWithAuthorization(OAUTH_LOGIN_URL,requestInit);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。