Python 刷新JWT令牌时不允许使用405方法-Django,Angular
我在Django/Angular项目中使用JWT身份验证,当旧的访问令牌过期时,尝试获取新的访问令牌时,会发生奇怪的事情 我得到一个不允许的405 POST方法。我已经设置了corsheaders,允许所有方法和外部主机访问该应用程序。 当我发送刷新令牌以获取新的访问令牌时,请求看起来很好 我注意到,它只发生在向django发送POST请求以在显示数据之前访问某些数据的页面上。 当我在一个发送GET请求或什么都不发送的页面上时,获取新令牌的效果非常好 请看一下代码和回复 错误响应 设置.pyPython 刷新JWT令牌时不允许使用405方法-Django,Angular,python,django,angular,jwt,jwt-auth,Python,Django,Angular,Jwt,Jwt Auth,我在Django/Angular项目中使用JWT身份验证,当旧的访问令牌过期时,尝试获取新的访问令牌时,会发生奇怪的事情 我得到一个不允许的405 POST方法。我已经设置了corsheaders,允许所有方法和外部主机访问该应用程序。 当我发送刷新令牌以获取新的访问令牌时,请求看起来很好 我注意到,它只发生在向django发送POST请求以在显示数据之前访问某些数据的页面上。 当我在一个发送GET请求或什么都不发送的页面上时,获取新令牌的效果非常好 请看一下代码和回复 错误响应 设置.py
CORS_ORIGIN_WHITELIST = (
'127.0.0.1:4200',
'127.0.0.1:8082',
)
CORS_ALLOW_METHODS = [
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
]
CORS_ALLOW_HEADERS = [
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
]
处理401错误并在angular中获取新令牌
private handle401Error(请求:HttpRequest,下一步:HttpHandler):可观察{
如果(!this.isRefreshing){
this.isRefreshing=true;
this.refreshTokenSubject.next(null);
返回此.userService.refreshToken()管道(
开关映射((令牌:任意)=>{
this.isRefreshing=false;
this.refreshTokenSubject.next(token.access);
返回next.handle(this.addToken(request,token.access));
}));
}否则{
返回此.refreshTokenSubject.pipe(
过滤器(令牌=>令牌!=null),
以(1)为例,
开关映射(访问=>{
返回next.handle(this.addToken(请求,访问));
})
);
}
}
刷新令牌(){
返回this.http.post(`${this.apirl}/api/token/refresh`{
“刷新”:this.getRefreshToken()
}).pipe(tap)(令牌:任意)=>{
this.setJwtToken(tokens.access);
},err=>{
控制台日志(err);
}));
}
我试过使用corsheaders,我试过打印所有发送的数据和所有的拦截器,但是我没有主意了
这些POST请求是否有可能以某种方式切换到错误的URL?是否假设是POST请求?是的,刷新令牌转到/api/token/refresh,我应该接收访问令牌,而不是发送到错误的URL确保您的api正在接受POST请求,。