Lorsque vous utilisez une validation basée sur cookies
, écrivez un tel Permission
class IsAuthenticatedAndStudentOwner(BasePermission):
message = 'You must be a student.'
def has_permission(self, request, view):
return request.user.is_authenticated() and smart_str(request.user.identity) == '学生'
def has_object_permission(self, request, view, obj):
return obj.student.user == request.user
Lorsque j'utilise jwt
pour vérifier, la connexion renvoie un token
sans exécuter login(request, user)
, c'est-à-dire que request.user
est AnonymousUser
.
# login(request, user_obj)
payload = jwt_payload_handler(user_obj)
token = jwt_encode_handler(payload)
data['token'] = token
return data
Alors, comment dois-je modifier cela Permission
S'il vous plaît, aidez-moi.
jwt
的验证,你是通过header
ORcookie
的方式传递的?define another method in class
IsAuthenticatedAndStudentOwner
Vous pouvez également l'ouvrir en utilisant jwt
login(request, user_obj)
ahL'utilisateur back-end existe toujours dans la requête, mais lors de l'utilisation de jwt, le modèle Django n'est plus utilisé et l'utilisateur ne peut pas être utilisé librement dans la page
J'écrirai ceci bientôt, continuez à prêter attention à l'échange