drf——登录及登录认证

登录认证:

class Login(APIView):
    """登录接口"""

    def post(self, request, version):
        msg = {'code': status.OK, 'message': '操作成功', 'data': ''}
        print(request.user)
        username = request.data.get('username')
        password = request.data.get('password')
        user_obj = auth.authenticate(request, username=username, password=password)
        if user_obj:
            payload = jwt_payload_handler(user_obj)
            token = jwt_encode_handler(payload)
            user_data = {'username': user_obj.username,  'token': token,}
            msg['data'] = user_data
        else:
            msg['code'] = status.InputErr
            msg['message'] = '账号或密码错误'
        return Response(msg)
sql = 'select ProductCodeName,ProductCodeDescription,AssetTypeId from opendata.ProductCodes where ProductCodeName in (select ProductCodeName from opendata.ProductCodes GROUP BY ProductCodeName);'
sql2 = 'select AssetTypeId,AssetTypeName from opendata.AssetTypes where AssetTypeId in (select AssetTypeId from opendata.ProductCodes where ProductCodeName in (select ProductCodeName from opendata.ProductCodes GROUP BY ProductCodeName));'

登录认证类:

from rest_framework_jwt.authentication import BaseJSONWebTokenAuthentication
from rest_framework.exceptions import AuthenticationFailed
from rest_framework_jwt.utils import jwt_decode_handler


class BaseJwtAuthentication(BaseJSONWebTokenAuthentication):
    def authenticate(self, request):
        jwt_value = request.META.get("HTTP_AUTHORIZATION")
        if jwt_value:
            try:
                payload = jwt_decode_handler(jwt_value)
            except Exception as e:
                raise AuthenticationFailed(str(e))
            user = self.authenticate_credentials(payload)
            return user, jwt_value
原文地址:https://www.cnblogs.com/pythonwl/p/13963918.html