如何实现判断当前操作,用户是否为登录状态?

该博客介绍了如何使用JWT(JSON Web Token)实现用户登录状态的验证。当用户登录时,服务器返回的Token被存储在local或session存储中。在后续的API请求中,通过检查localStorage或sessionStorage中的Token来判断用户是否已登录。如果Token存在,则将其添加到请求头的Authorization字段,服务器通过Django的IsAuthenticated模块验证Token并获取用户信息。若Token不存在,用户会被提示登录。这种方式确保了只有登录用户才能访问特定资源,如购物车信息。

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

  根据之前的JWT实现登录的博客,用户登录时,已经将服务器返回的Token存放在了local或是session存储当中。要判断当前的请求,用户时候为登录状态时,我们需要读取Token,如果Token为空,那么用户是没有登录的,如果非空,则将Token附加到请求头的Authorization当中,服务器就能根据请求接收到用户的信息。如下案例:

      get_cart(){
          // 获取购物车中的商品信息
          this.$axios.get(`${this.$settings.HOST}/cart/`,{
              headers:{
                  "Authorization": "jwt " + this.token,
              }
          }).then(response=>{
              this.course_list = response.data;
              this.$store.commit("add_cart", this.course_list.length);
          }).catch(error=>{
              console.log(error.response);
          })
      },
      check_user_login(){
        let token = localStorage.user_token || sessionStorage.user_token;
        if( !token ){
            let self = this;
            this.$confirm("对不起,您尚未登录!所以请登录再使用购物车","路飞学城",{
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
            }).then(() => {
                self.$router.push("/user/login");
            });
            return false; // 阻止js继续往下执行
        }
        return token;
      },

例如,有用户向服务器查询购物车信息时,显然,如果用户没有登录,服务器肯定是要把这个请求给拒绝的,而且没有登录获取也获取不到用户的id。使用check_user_login()返回Token,在get_cart()中将Token附加到Authorization中(注意⚠️:"jwt "这里,必须有一个空格!),django中有IsAuthenticated模块,根据传过来的Token就能够获取用户的信息了。我们就能在F12中,可以查看到如下信息:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值