Django通过rest_framework.permissions模块中IsAuthenticated实现身份验证

本文详细讲解了在Django项目中,如何利用rest_framework.permissions模块的IsAuthenticated进行用户身份验证。在前端登录成功后,将用户ID、用户名和JWT token存储在sessionstorage中,后续请求通过发送token到后端进行校验。后端使用RetrieveAPIView处理请求,配合特定的序列化器,并在dev.py配置中启用IsAuthenticated权限设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天我给大家介绍如何写用户信息页面,当我们在登录完后,可以查看自己的用户信息,这里仅介绍登录的情况下。那是如何实现的呢?首先我们在登录的时候,用ajax请求把用户id和username以及token信息存储到sessionstorage中,这里的 id,username,token是login时候后端实现传到前端的哦,这里不将介绍,我的token是用的django-restframe-jwt实现的,当我把这三个数据存储到sessionstorage之后,我再进行ajax的get请求,把token传到后端进行身份校验,下面开始的请求,前端代码:


$.ajax({
        url:'http://127.0.0.1:8000/userinfo/',
        beforeSend: function(xhr) {
            xhr.setRequestHeader("Authorization",'JWT  '+sessionStorage.token);
        },
        method:'GET',
        data:json_data,
        contentType:'application/json',
        dataType:'json',
        success:function (data) {
           console.log(data)
    }

这里:一定要加上 beforeSend字段,否则不会验证通过,'JWT’这里可以替换自己token加密的方法。
后端用的RetrieveAPIView:

class UserInfoView(RetrieveAPIView):

    permission_classes = (IsAuthenticated,)  # []列表也行,只要可迭代对象就可
    serializer_class = UserInfoSerializers


    def get_object(self):
        print(self.request.user)
        return self.r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值