我有一个 python 应用程序需要为用户提供一个 JSON 网络 token 以进行身份验证。 token 是使用 PyJWT 库构建的(导入 jwt)。
根据我的阅读,在客户提供一些凭据(例如登录)后将 token 提供给客户似乎是一种可接受的做法。
然后,客户端在 Authorization Bearer 字段中的 HTTP 请求 header 中使用该 token ,这必须通过 TLS 进行,以确保 token 不会暴露。
我不明白的部分是,如果客户端不小心公开了该 token 怎么办?这不会让任何拥有该 token 的人冒充他们吗?
将 token 交给客户的最安全方式是什么?
请您参考如下方法:
您可以在将 token 交给客户之前对其进行加密,可以使用他们自己的公钥,也可以在带外向他们提供 key 。这确保了交付,但仍未涵盖所有内容。
简而言之,没有简单的解决方案。您可以执行尽职调查并要求使用安全功能,但是一旦客户端解密了 token ,仍然无法确保他们不会意外或以其他方式暴露它。良好的安全性需要双方都养成良好的习惯。
token 的好处是您可以给它们一个预设的生命周期,或者如果您怀疑它们已被泄露,可以轻松撤销它们并生成新的。
