Skip to main content
 首页 » 编程设计

python之如何以安全的方式为客户提供 JSON Web token (JWT)

2024年08月19日49freeliver54

我有一个 python 应用程序需要为用户提供一个 JSON 网络 token 以进行身份​​验证。 token 是使用 PyJWT 库构建的(导入 jwt)。

根据我的阅读,在客户提供一些凭据(例如登录)后将 token 提供给客户似乎是一种可接受的做法。

然后,客户端在 Authorization Bearer 字段中的 HTTP 请求 header 中使用该 token ,这必须通过 TLS 进行,以确保 token 不会暴露。

我不明白的部分是,如果客户端不小心公开了该 token 怎么办?这不会让任何拥有该 token 的人冒充他们吗?

将 token 交给客户的最安全方式是什么?

请您参考如下方法:

您可以在将 token 交给客户之前对其进行加密,可以使用他们自己的公钥,也可以在带外向他们提供 key 。这确保了交付,但仍未涵盖所有内容。

简而言之,没有简单的解决方案。您可以执行尽职调查并要求使用安全功能,但是一旦客户端解密了 token ,仍然无法确保他们不会意外或以其他方式暴露它。良好的安全性需要双方都养成良好的习惯。

token 的好处是您可以给它们一个预设的生命周期,或者如果您怀疑它们已被泄露,可以轻松撤销它们并生成新的。