Rumah > Soal Jawab > teks badan
使用基于cookies
的验证时,写了这样一个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
当我使用jwt
验证后,登录返回一个token
,不运行login(request, user)
,也就是request.user
是AnonymousUser
.
# login(request, user_obj)
payload = jwt_payload_handler(user_obj)
token = jwt_encode_handler(payload)
data['token'] = token
return data
那么我该怎么修改这个Permission
呢,求解。
阿神2017-05-15 17:16:23
jwt
的验证,你是通过header
ORcookie
的方式传递的?
define another method in class IsAuthenticatedAndStudentOwner
def is_authenticated(self, request, view):
if using cookie:
return request.user.is_authenticated()
elseif jwt:
...
def has_permission(self, request, view):
return self.is_authenticated(request, view) and smart_str(request.user.identity) == '学生'
習慣沉默2017-05-15 17:16:23
Anda juga boleh membukanya menggunakan jwtlogin(request, user_obj)
ah
Pengguna bahagian belakang masih wujud dalam permintaan, tetapi apabila menggunakan jwt, templat django tidak lagi digunakan, dan pengguna tidak boleh digunakan secara bebas dalam halaman
Saya akan menulis ini tidak lama lagi, sila teruskan perhatian kepada pertukaran