Получение 403 ошибки при отправке POST-запроса Angular

Я получаю код состояния 403 при отправке post requset на сервер в django, сервер работает на locallhost, в postman post запрос работает, в чем причина возникновения ошибки

Мой файл auth.service.ts

getUser():Observable<any>{
const token = localStorage.getItem('jwt');

if(!token){
  return throwError('Unauthorized')
}

const headers = new HttpHeaders({
  'Content-Type':'application/json',
  'Authorization': 'Bearer' + token
});

return this.http.get<any>(this.apiUrl_User, {headers})

}

Бэкенд часть в django

class UserView(APIView):

def get(self,request):
    token = request.COOKIES.get('jwt')

    if not token:
        raise AuthenticationFailed('Unauthenticated')
    
    try:
        payload = jwt.decode(token, 'secret',algorithms=['HS256'])
    except jwt.ExpiredSignatureError:
        raise AuthenticationFailed('Unauthenticated')
    
    user = User.objects.filter(id = payload['id']).first()
    serializer = UserSerializer(user)

    return Response(serializer.data)

вот как выглядит корсхедерс

CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
ALLOWED_HOSTS = [
    "http://locallhost:4200",
    "127.0.0.1"
]
CORS_ALLOW_METHODS = (
    "DELETE",
    "GET",
    "OPTIONS",
    "PATCH",
    "POST",
    "PUT",
 )
 CORS_ALLOW_HEADERS = (
    "accept",
    "authorization",
    "content-type",
    "user-agent",
    "x-csrftoken",
    "x-requested-with",
 )

403 Forbidden Error означает, что у вас нет доступа к этому маршруту. Это означает, что он настроен из бэкенда, тогда как если вы отправляете токен, проверьте в месте над контроллером, какая роль разрешает пользователю доступ к нему, и проверьте, содержит ли токен входящего пользователя это разрешение или нет. Например, роль может повлиять на это. Обязательно проверьте свойства токена. Если это jwt-токен, обязательно зайдите на jwt.io и проверьте, какие разрешения установлены для этого токена.

Здесь

'Authorization': 'Bearer' + token

Обязательно добавьте пробел после Bearer

'Authorization': 'Bearer ' + token

Нравится, потому что это может вызвать проблемы с некоторыми бэкендами.

Вернуться на верх