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
分类:
DRF
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现