Я использую Django Rest Framework на бэкэнд и приложение ember-cli на интерфейсе. Аутентификация работает правильно, но, похоже, в разрешении есть дыра.Django не признает мой токен?
# settings.py
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.AllowAny',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
}
# views.py
class CurrentUserView(APIView):
"get the data for the current authenticatd user"
permission_classes = (IsAuthenticated,)
def get_queryset(self, request):
queryset = User.objects.filter(username=request.user.username)
return queryset
def get(self, request):
serializer = UserSerializer(request.user)
return Response(serializer.data)
Когда я делаю запрос к этой конечной точке /v1/me/
он отвечает назад с 403. Когда я снимаю класс разрешения, я вернусь {"id":null,"username":"","is_active":false}
, потому что он не знает, кто я.
Кроме того, когда я использую API-интерфейс для просмотра, URL-адрес /v1/me
работает правильно.
На третьей стороне я вхожу в систему со своей учетной записью и правильно верну свой токен. В запросе передается Authorization: Token asdf1234asdf1234asdf1234
. Я бы подумал, что Джанго берет этот знак и знает, кто я? Я что-то упускаю?
ну нет TokenGETAuthentication, но я добавил, что класс аутентификации и он работает. Я не знаю, почему, потому что это, предположительно, мой auth-класс по умолчанию и должен применяться автоматически? – awwester
Я скопировал его из своей системы, которую я переименовал :). – itzMEonTV