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

ImportError:无法导入TimedJSONWebSignatureSerializer,求安全时效令牌生成方案

解决itsdangerous导入TimedJSONWebSignatureSerializer的错误

我跟着Corey Schafer的视频学习生成带时效的安全令牌,用于限制只有能访问用户邮箱的人才能通过PowerShell终端重置密码。但执行以下代码时:

from itsdangerous import TimedJSONWebSignatureSerializer as Serializer

出现了如下导入错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'TimedJSONWebSignatureSerializer' from 'itsdangerous' (C:\Users\User\Flask\flask\lib\site-packages\itsdangerous\__init__.py)

问题原因

itsdangerous 2.0及以上版本移除了TimedJSONWebSignatureSerializer类,改用更简洁的TimedSerializer或URL安全的URLSafeTimedSerializer替代。

解决方法

方法1:使用TimedSerializer替换

直接替换导入语句,初始化方式和原代码一致:

from itsdangerous import TimedSerializer as Serializer

# 初始化示例(和原代码用法相同)
serializer = Serializer(secret_key="your-secret-key", expires_in=3600)

方法2:使用URLSafeTimedSerializer(推荐)

如果生成的令牌需要在URL中传输,推荐使用URL安全的版本,功能和旧的TimedJSONWebSignatureSerializer完全一致:

from itsdangerous import URLSafeTimedSerializer

serializer = URLSafeTimedSerializer(
    secret_key="your-secret-key",
    salt="password-reset",  # 可选,用于区分不同场景的令牌
    expires_in=3600
)

补充说明

如果需要兼容旧版本的itsdangerous,可以指定安装2.0以下的版本:

pip install itsdangerous==1.1.0

但更建议使用新版本的API,避免依赖过时的包。

内容的提问来源于stack exchange,提问作者Ajayi Oluwaseyi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:05:39