我正在研究JWT认证。这个例子对我来说并不清楚。
from django.contrib.auth import authenticate, user_logged_in
from rest_framework import serializers
from rest_framework_jwt.serializers import JSONWebTokenSerializer, jwt_payload_handler, jwt_encode_handler
class JWTSerializer(JSONWebTokenSerializer):
def validate(self, attrs):
credentials = {
self.username_field: attrs.get(self.username_field),
'password': attrs.get('password')
}
if all(credentials.values()):
user = authenticate(request=self.context['request'], **credentials)
在哪里
self.context['request']
来自?
答案 0 :(得分:1)
在初始化期间,您可以传递给序列化程序额外的上下文。查看docs的这一部分了解详情。
默认情况下,DRF的通用视图传递了额外的上下文request
对象(source code),您可以使用以下语法在序列化程序类中获取:
self.context['request']