Настройки Django Rest Framework для разрешения аутентификации из Flutter с использованием ключа аутроизации
В настоящее время я пытаюсь получить данные с помощью Flutter из Django rest framework следующим образом:
final response = await http.get(
url,
headers: {
HttpHeaders.authorizationHeader:
'Authorization: Bearer ......bla bla ..........',
},
);
но я продолжаю получать {detail: Authentication credentials were not provided.}
и из терминала Django Rest Framework он показывает: Forbidden: /api/dj-rest-auth/user/
Вот Django settings.py:
INSTALLED_APPS = [
.......................
'rest_framework',
'users',
'corsheaders',
'django.contrib.sites',
'rest_framework.authtoken',
'dj_rest_auth',
'allauth',
'allauth.account',
'allauth.socialaccount',
'dj_rest_auth.registration',
]
# REST_FRAMEWORK = {
# 'DEFAULT_PERMISSION_CLASSES': [
# 'rest_framework.permissions.AllowAny',
#
# ]}
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
)
}
CORS_ALLOW_ALL_ORIGINS=True
AllowAny =True
Когда я пытался использовать 'rest_framework.permissions.AllowAny'
возврат запрещен при использовании
'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.TokenAuthentication',), 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',)
возврат Unauthorized
вот views.py:
@csrf_exempt
def aPage(request):
user:User=User.objects.get(pk=1)
username=request.POST.get("username")
email=request.POST.get("email")
print(email)
print(username)
return JsonResponse({"Username":username , "email": email})
Как я могу отправить аутентификацию вошедшего пользователя, используя его токен, чтобы позволить ему получить данные из api? Что я делаю неправильно, что приводит к таким ошибкам?
Значение HttpHeaders.authorizationHeader
равно "authorization" из-за этого он посылает недействительные заголовки попробуйте так
headers: {
HttpHeaders.authorizationHeader: 'Bearer xxxxxxxx',
},