永久token

26 篇文章 3 订阅
20 篇文章 0 订阅

在HTTP检查的时候,出现如下错误:
在这里插入图片描述
401的意思代表访问由于凭据无效被拒绝,总结一下就是我们设置的token过期了,那如何设置一个永久有效的token呢?

我们的token认证是通过JWT实现的,JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案。

JWT TOKEN组成

一个JWT TOKEN为三个部分组成:

  1. JWT头

    JWT头部分是一个描述JWT元数据的JSON对象,通常如下所示。

    {
    "alg": "HS256",
    "typ": "JWT"
    }
    

    在上面的代码中,alg属性表示签名使用的算法,默认为HMAC SHA256(写为HS256);typ属性表示令牌的类型,JWT令牌统一写为JWT。

    最后,使用Base64 URL算法将上述JSON对象转换为字符串保存。

  2. 有效载荷

    有效载荷部分,是JWT的主体内容部分,也是一个JSON对象,包含需要传递的数据。 JWT指定七个默认字段供选择。

    iss:发行人
    exp:到期时间
    sub:主题
    aud:用户
    nbf:在此之前不可用
    iat:发布时间
    jti:JWT ID用于标识该JWT
    

    想要生成一个永久有效的token,就需要修改exp字段。

    注意:默认情况下JWT有效载荷部分是未加密的,任何人都可以解读其内容,因此不要构建隐私信息字段,存放保密信息,以防止信息泄露。

  3. 签名

    签名哈希部分是对上面两部分数据签名,通过指定的算法生成哈希,以确保数据不会被篡改。

    首先,需要指定一个密码(secret)。该密码仅仅为保存在服务器中,并且不能向用户公开

    然后,使用标头中指定的签名算法(默认情况下为HMAC SHA256)根据以下公式生成签名。

    HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload),secret)
    

    在计算出签名哈希后,JWT头,有效载荷和签名哈希的三个部分组合成一个字符串,每个部分用"."分隔,就构成整个JWT对象。

修改方法

ask.shannonai.com为例:

  1. 获取token

    访问ask.shannonai.com,按F12打开控制台,如下图依次点击,然后复制token
    在这里插入图片描述

  2. 解密token

    访问:https://jwt.io/ (需要挂梯子,要不半天打不开)

    将我们的token复制到页面下方的Encoded中,然后在Decoded中就能看到JWT TOKEN的三个部分:
    在这里插入图片描述

  3. 生成永久token

    首先去找到你在项目中设置的secret_key,我们的token就是根据secret_key进行的加密,将secret_key复制到图中所示位置,然后修改exp字段的数值(直接改数字第一位就行,+3基本就是100年),将鼠标放在exp值上可以看到标准格式时间。
    在这里插入图片描述

    最后复制Encoded中新生成的token。

  4. 校验token是否可用

    修改第一步中浏览器控制台的token,修改后如果页面还能照常打开,说明token可用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值