我正在尝试为我的 android 应用程序在烧瓶中编写基于令牌的身份验证。为此,我需要一个唯一的令牌,我可以使用它来验证用户。
Itsdangerous 库提供了一个 JSONWebSignatureSerializer 函数,我可以使用它来创建 JWT 令牌。所以我的第一个问题是,将 JWT 用于基于移动的身份验证是否安全?
其次,我对 django rest 框架如何生成它的令牌做了一点研究。
def generate_key(self):
return binascii.hexlify(os.urandom(20)).decode()
这个令牌是唯一的还是随机的?我应该使用哪一个进行基于移动设备的身份验证?
在 python 中为移动应用程序生成唯一令牌的基本方法是什么?
原文由 saprative 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以像提到的那样使用内置
uuid
模块。 3.6 中发布的新模块secrets
也能够创建独特的令牌。下面的函数每次被调用时都会创建一个唯一的标记。
os.urandom
方法返回 20 个随机字节作为字符串,binascii.hexlify
方法将这 20 个字节中的每一个转换为该字节的 2 位十六进制表示。这就是返回值是两倍长的原因。如果您想使用此方法并需要特定长度的标记,请使用所需长度的 一半 作为
os.urandom
方法的参数。