python - JWT, bagaimanakah Django menyesuaikan kebenaran tentang pengguna?
高洛峰
高洛峰 2017-05-15 17:14:23
0
2
875

Apabila menggunakan pengesahan berdasarkan cookies, tulis Permission

sedemikian
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

Apabila saya menggunakan jwt untuk mengesahkan, log masuk mengembalikan token tanpa menjalankan login(request, user), iaitu request.user ialah AnonymousUser.

# login(request, user_obj)
payload = jwt_payload_handler(user_obj)
token = jwt_encode_handler(payload)
data['token'] = token
return data

Jadi bagaimana saya harus mengubah suai ini Permission? Tolong bantu.

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(2)
阿神

jwt的验证,你是通过headerORcookie的方式传递的?
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) == '学生'

    
習慣沉默

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan