接口使用jwt返回token_django rest framework 自定义login接口 使用jwt返回token令牌

介绍

drf前后端分离后,login接口数据想返回其他用户字段给前端使用,就需要用到自己重新定义一个login接口,下面直接贴上代码

from rest_framework_jwt.serializers import jwt_payload_handler, jwt_encode_handler

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt

def login(request):

resp = {"msg": "操作成功"}

if request.method == "POST":

result = request.body

try:

dict_result = json.loads(result)

except Exception:

code = 400

resp["msg"] = "请求方式错误,请用json格式传参"

return JsonResponse(resp, status=code)

username = dict_result.get("username")

password = dict_result.get("password")

user_queryset = UserProfile.objects.filter(username=username)

if not user_queryset:

code = 400

resp["msg"] = "登录失败"

return JsonResponse(resp, status=code)

user = user_queryset[0]

if user.check_password(password):

payload = jwt_payload_handler(user)

# 生成token

token = jwt_encode_handler(payload)

code = 200

resp["msg"] = "登录成功"

resp["token"] = token

resp["level"] = user.level

resp["username"] = user.username

return JsonResponse(resp, status=code)

else:

code = 400

resp["msg"] = "仅支持POST"

return JsonResponse(resp, status=code)

然后再urls做下路由映射,就ok了

本博客源码Github地址:

请随手给个star,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值