第四章:AI 实战开发22. 修改 JWT 配置

修改 JWT 配置 - 用户认证安全配置

大家好,上节课我们教大家如何去注册阿里云的短信,如何申请资质和签名,并且使用阿里云的配置成功将短信发到了手机上,然后完成了登录。

需要调整的配置

接下来我们要继续看一下这个配置文件,上方还有两个配置都是需要去做调整的:

  1. JWT 相关的配置
  2. 数据库的配置

这节课我们先看一下 JWT 的配置。

什么是 JWT

JWT 的全称是 JSON Web Token,它是一个字符串。

查看 JWT

我们可以来看一下它长什么样子。

打开浏览器控制台

我们找到右边的网页,然后打开控制台。

查看网络请求

找到”网络”(Network),刷新一下界面。

这里可以看到客户端给服务端发的请求,随便点开一个请求,然后往下拉。

找到 JWT

找到”请求标头”(Request Headers),下方有一个 Authorization,后面对应的这个字符串就是 JWT。

JWT 的作用

我们的软件登录成功之后,所有的请求都会携带这个字符串请求服务端。

服务端会校验这个字符串是不是自己创建的。

JWT 的工作原理

那怎么去校验呢?

  1. 创建 JWT 时:我们用配置文件中的 JWT_SECRET 给 JWT 做加密
  2. 校验 JWT 时:再用它来校验是不是我们创建的

所以这个字符串最好使用一些随机的、不规律的字符组成,并且不要泄露。

🚫

安全警告

泄露之后,理论上就可以伪造请求了,也就是伪造用户的登录。

修改 JWT 配置

1. JWT_SECRET(密钥)

我们来修改一下这个值。

查看当前配置

打开配置文件,找到 JWT 相关配置:

JWT_SECRET=your-secret-key-change-this-in-production

很明显是模板中给我们的一个定义好的 demo。

修改为随机字符串

我们把它改成随机的 UUID:

JWT_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy

关于密钥长度

这个值默认最短是 32 位,我们用两个 UUID 也就是 64 位,两个随机的字符串。

当然你也可以自己去定义,或者在键盘上随便去敲一些随机的字符串都行。

⚠️

定期更换密钥

如果说你想更安全一点,或者你的这个 secret 已经泄露了,那么可以定期去更换。

2. JWT_EXPIRES_IN(过期时间)

我们再来看一下下面这个配置:

JWT_EXPIRES_IN=7d

这个配置是什么意思呢?其实大概也能看出来,它就是 JWT 的过期时间,也就意味着用户登录最长能保持多久。

调整过期时间

通常移动端的应用都会保持较长的时间,所以我们就改成 30 天:

JWT_EXPIRES_IN=30d

这样可以避免用户频繁的掉线重新登录。

配置完成

那么这个配置就修改好了。

配置说明

完整的 JWT 配置

# JWT 配置
JWT_SECRET=你的随机密钥字符串(至少32位)
JWT_EXPIRES_IN=30d

配置项说明

配置项说明建议值
JWT_SECRETJWT 加密密钥,用于生成和验证 Token至少 32 位的随机字符串
JWT_EXPIRES_INToken 过期时间移动端:30d,Web 端:7d

关于过期时间格式

过期时间支持以下格式:

  • s - 秒(seconds)
  • m - 分钟(minutes)
  • h - 小时(hours)
  • d - 天(days)

例如:7d 表示 7 天,24h 表示 24 小时。

提交代码

创建新分支

点击左侧的”源代码管理器”,新建一个分支:

v1.0.0-9-修改JWT配置

暂存修改

点击目录右侧的加号,暂存所有修改。

提交代码

点击”提交”,提交信息写:

修改 JWT 配置,增强安全性

发布分支

然后”发布分支”,推送到远程仓库。

💡

遇到问题?

如果在配置 JWT 时遇到问题,可以扫描下方的微信二维码帮您看下(免费咨询)

小结

通过这节课,我们学会了:

  1. JWT 的概念 - 什么是 JWT,它在用户认证中的作用
  2. JWT 的工作原理 - 如何通过密钥进行加密和验证
  3. 安全配置 - 如何设置安全的密钥和合理的过期时间
  4. 配置管理 - 如何修改和管理 JWT 相关配置

安全最佳实践

  1. 密钥管理

    • 使用足够长的随机字符串(至少 32 位)
    • 不要在代码中硬编码密钥
    • 不要将密钥提交到公开的代码仓库
    • 定期更换密钥(建议每 3-6 个月)
  2. 过期时间设置

    • 移动端应用:可以设置较长时间(如 30 天)
    • Web 应用:建议设置较短时间(如 7 天或更短)
    • 敏感操作:可以要求重新验证
  3. 生产环境

    • 开发环境和生产环境使用不同的密钥
    • 使用环境变量管理敏感配置
    • 启用 HTTPS 保护 Token 传输

下一步

JWT 配置完成后,接下来我们需要:

👉 下一节:数据库配置调整


相关信息

💬 扫码了解更多信息

客服微信二维码

添加微信

知识星球二维码

加入知识星球