Невозможно получить доступ к бэкэнду с помощью токена Postman и авторизации - PullRequest
0 голосов
/ 04 февраля 2020

Angular 8 и Django 3. Я получаю user_id и token из django, используя пользовательский класс просмотра CustomAuthToken. Я получаю ответ, который имеет token и user_id. Я следую руководству и хочу проверить отправку пользовательского заголовка на django, чтобы проверить, работает ли авторизация.

Я использую Почтальон и устанавливаю заголовки на Authorization: Bearer 1a683...9e428. Когда я отправляю запрос GET на http://127.0.0.1:8000/users/dashboard/23, я получаю ответ "detail": "Authentication credentials were not provided."

Насколько я понимаю, эти заголовки должны работать? Или на стороне клиента есть что-то, что декодирует заголовок и отправляет его обратно или что-то еще?

views.py

class CustomAuthToken(ObtainAuthToken):

    def post(self, request, *args, **kwargs):
        serializer = self.serializer_class(data=request.data,
                                           context={'request': request})
        serializer.is_valid(raise_exception=True)
        user = serializer.validated_data['user']
        token, created = Token.objects.get_or_create(user=user)
        return Response({
            'token': token.key,
            'user_id': user.pk,
        })

settings.py

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticatedOrReadOnly',

    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.BasicAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    ),

}

urls.py

urlpatterns = [
    path('dashboard/<int:pk>', UserDashboard.as_view(), name='dashboard'),
    path(r'api-token-auth/', CustomAuthToken.as_view()),
    ]

1 Ответ

0 голосов
/ 04 февраля 2020

Это должен быть Token префикс в заголовке авторизации вместо носителя:

Authorization: Token 1a683...9e428

Подробнее см. документы .

...