前缀:我是 django 的新手。
堆栈:oAuth2 + PKCE 协议、Angular、Django-oauth2-toolkit + REST
继续获得:
oauthlib.oauth2.rfc6749.errors.InvalidRequestError: (invalid_request) URL query parameters are not allowed <oauthlib.Request SANITIZED>
没有关于请求内容的错误细节。
当我在 Angular 中使用 pkce 格式的 POST 请求访问 django oauth2 服务器时,例如
requestToken(code: string, state: string) {
const clientState = sessionStorage.getItem('pkce-state');
if (clientState !== state) {
console.error('States do not match!');
}
const verifier = sessionStorage.getItem('pkce-verifier');
return this.http.post('http://localhost:8000/o/token/',
{
headers: new HttpHeaders({'Content-Type': 'application/x-www-form-urlencoded'})
},
{
params:
new HttpParams()
.set('grant_type', 'authorization_code')
.set('code', code)
.set('redirect_uri', 'http://localhost:4200/dashboard')
.set('client_id', 'CLIENT_ID')
.set('state', state)
.set('verifier', verifier)
});
}
不知道出了什么问题。
PS 当请求打印在 django 日志中时,看起来没有任何编码。挑战和验证者正在工作,否则错误将表明如此。