zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    喜马拉雅第三方客户端开发(接口和接口数据解析)。
    jquery-easyui中datagrid扩展,隐藏显示表头功能
    backbone ,jQuery-easyui,knockoutjs的整合使用
    WPF中的瀑布流布局(TilePanel)控件
    使用this.$refs['formName'].resetFields()无法重置表单
    js获取json对象的key值
    Hash表算法详解
    Redis入门
    ASP.Net 下载大文件的实现
    后端生成二维码
  • 原文地址:https://www.cnblogs.com/pythonwl/p/13963918.html
Copyright © 2011-2022 走看看