防止使用URLSearchParams进行百分比编码

时间:2018-12-27 21:27:56

标签: javascript node.js angular typescript oauth

我正在尝试使用Node URL和URLSearchParams API来简化URL的构建。我正在用它来构建这样的URL:

https://<ye olde oauth host>/oauth/authorize?response_type=code&client_id=<my client id>&redirect_uri=https://localhost:4200&scopes=scope1%20scope2

但是,我下面的代码正在创建这样的URL:

https://<ye olde oauth host>/oauth/authorize?response_type=code&client_id=<my client id>&redirect_uri=https%3A%2F%2Flocalhost%3A4200&scopes=scope1%20scope2

据我了解,URLSearchParams API将对字符串进行百分比编码,但是如果我不希望对它们进行编码(如URL)怎么办?这是我的代码:

const loginURL = new URL('https://<ye olde oauth host>');
    url.pathname = 'oauth/authorize';
    url.search = new URLSearchParams({
      response_type: 'code',
      client_id: '<my client id>'
    }).toString();
loginURL.searchParams.append('redirect_uri', redirectURI);
loginURL.searchParams.append('scopes', scopes);

我不希望对redirect_uri进行百分比编码是因为接收端的OAuth API不知道如何解析它。有没有办法使用URLSearchParams阻止其编码?

0 个答案:

没有答案