examtest/test_server/crm/authentication.py

26 lines
793 B
Python

from rest_framework_jwt.authentication import JSONWebTokenAuthentication
from rest_framework_jwt.serializers import jwt_decode_handler
from rest_framework import exceptions
from django.utils.translation import ugettext as _
from crm.models import Consumer
class ConsumerTokenAuthentication(JSONWebTokenAuthentication):
def authenticate_credentials(self, payload):
"""
返回登陆消费者
"""
id = payload['user_id']
if not id:
msg = _('签名有误.')
raise exceptions.AuthenticationFailed(msg)
try:
consumer = Consumer.objects.get(id=id)
except Consumer.DoesNotExist:
msg = _('消费者不存在')
raise exceptions.AuthenticationFailed(msg)
return consumer