Как заставить работать аутентификацию jwt фреймворка django rest [django rest, angular 5]

поэтому я установил djanogo rest framework JWT и установил настройки и классы аутентификации. Согласно этому руководству. Я опущу настройки, так как они правильные, и проблема не в этом. Также не стоит публиковать слишком много кода

https://jpadilla.github.io/django-rest-framework-jwt/< /а>

Затем я вызываю представление авторизации на своем сервере из внешнего интерфейса.

 let token = "hardcoded token just to get the service working"; 
    if(token != null){
      this.authservice.authorizetoken(token)
        .subscribe(
          (req: any)=>{
            console.log(req);
          }
        );

// grab the permissions a user has and who they are by token
    authorizetoken(token){
      return this.http.get(userauthorization, {
        headers: new HttpHeaders().set('Authorization', 'JWT' + token )
      });
    }

то в моем django вот код просмотра:

class UserAuthorization(APIView):
    authentication_classes = (JSONWebTokenAuthentication,)
    def get(self, request, *args, **kwargs):
        print(request.user)
        return Response({})

но я продолжаю возвращать анонимный пользователь. Разве это не должен быть пользовательский объект, поскольку я передаю токен в заголовке?

Я не знаю, что я делаю неправильно.


comment
Как ваша конфигурация drf jwt? Или вы можете отладить проверку подлинности функции в классе BaseJSONWebTokenAuthentication. Это класс drf jwt, и этот дескриптор возвращает пользователя или нет, поэтому вы можете найти, в чем именно ошибка.   -  person Nguyen Quang Trung    schedule 08.05.2018


Ответы (1)


Согласно документации заголовки должны быть в формате Authorization: JWT <your_token>. Когда вы устанавливаете токен в заголовках внутри вашей функции authorizetoken, вам не хватает пробела между 'JWT'+ token. Это может быть проблемой из-за отсутствия аутентификации пользователя. Вы пробовали конечную точку с Postman?

person SK. Fazlee Rabby    schedule 08.05.2018
comment
Прошлой ночью я читал документы и подумал, что это может быть проблемой. Я только что добрался до своего компьютера и собираюсь проверить это. Спасибо - person ; 08.05.2018