You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Helm部署的旧版K8s Thingsboard如何修改JWT_TOKEN_EXPIRATION_TIME?

解决旧版Thingsboard社区版K8s部署修改JWT令牌过期时间的方案

方法1:修改配置文件并通过K8s ConfigMap挂载

旧版Thingsboard的JWT配置通常存放在thingsboard.yml或application.yml中,可按以下步骤操作:

  1. 从运行的Thingsboard Pod导出当前配置文件:
    kubectl exec -it <你的thingsboard-pod名称> -- cat /config/thingsboard.yml > thingsboard.yml
    
  2. 在本地编辑导出的文件,找到security或jwt节点,添加/修改tokenExpirationTime参数(例如设置为30天,对应毫秒值2592000000):
    security:
      jwt:
        tokenExpirationTime: 2592000000
    
  3. 创建自定义ConfigMap:
    kubectl create configmap tb-custom-config --from-file=thingsboard.yml
    
  4. 修改Helm的values.yaml,将该ConfigMap挂载到容器配置目录以覆盖默认文件:
    thingsboard:
      extraVolumeMounts:
        - name: custom-config
          mountPath: /config/thingsboard.yml
          subPath: thingsboard.yml
      extraVolumes:
        - name: custom-config
          configMap:
            name: tb-custom-config
    
  5. 应用Helm更新:
    helm upgrade <你的release名称> thingsboard/thingsboard -f values.yaml
    

方法2:直接修改数据库系统配置项

部分旧版Thingsboard会将核心配置存储在数据库中,可直接操作数据库:

  1. 进入数据库Pod(以PostgreSQL为例):
    kubectl exec -it <你的数据库pod名称> -- psql -U <数据库用户名> -d <thingsboard数据库名>
    
  2. 查询JWT过期时间的配置记录:
    SELECT * FROM tb_configuration WHERE key = 'security.jwt.tokenExpirationTime';
    
  3. 更新或插入配置值:
    -- 已有记录则更新
    UPDATE tb_configuration SET value = '2592000000' WHERE key = 'security.jwt.tokenExpirationTime';
    -- 无记录则插入
    INSERT INTO tb_configuration (key, value, type) VALUES ('security.jwt.tokenExpirationTime', '2592000000', 'SYSTEM');
    
  4. 重启Thingsboard Pod使配置生效:
    kubectl rollout restart deployment/<你的thingsboard-deployment名称>
    

注意事项

  • 操作前务必备份配置文件和数据库,避免数据丢失或服务异常。
  • 重启Pod会导致短暂服务中断,建议在低峰时段执行。
  • 集群部署场景下,需确保所有节点都加载修改后的配置。

内容的提问来源于stack exchange,提问作者Seungbae Ji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 09:12:48