Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何以安全的方式为客户端提供JSON web令牌(JWT)?_Python_Jwt - Fatal编程技术网

Python 如何以安全的方式为客户端提供JSON web令牌(JWT)?

Python 如何以安全的方式为客户端提供JSON web令牌(JWT)?,python,jwt,Python,Jwt,我有一个python应用程序,需要给用户一个JSON web令牌进行身份验证。令牌是使用PyJWT库(import jwt)构建的 从我所读到的内容来看,在客户机提供了一些凭据(如登录)之后,将令牌提供给客户机似乎是一种可以接受的做法 然后,客户机在授权承载字段的HTTP请求头中使用该令牌,这必须通过TLS进行,以确保令牌不会公开 我不明白的是,如果客户端意外地暴露了该令牌,该怎么办?这难道不能让任何拥有这个令牌的人模仿他们吗 将令牌移交给客户机的最安全方式是什么?您可以在将令牌移交给客户机之前

我有一个python应用程序,需要给用户一个JSON web令牌进行身份验证。令牌是使用PyJWT库(import jwt)构建的

从我所读到的内容来看,在客户机提供了一些凭据(如登录)之后,将令牌提供给客户机似乎是一种可以接受的做法

然后,客户机在授权承载字段的HTTP请求头中使用该令牌,这必须通过TLS进行,以确保令牌不会公开

我不明白的是,如果客户端意外地暴露了该令牌,该怎么办?这难道不能让任何拥有这个令牌的人模仿他们吗


将令牌移交给客户机的最安全方式是什么?

您可以在将令牌移交给客户机之前对其进行加密,可以使用他们自己的公钥,也可以将密钥传送到带外。这确保了交付,但仍不能涵盖所有内容

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


代币的好处在于,您可以给它们一个预设的使用期限,或者如果您怀疑它们已被破坏,可以轻松撤销它们并生成新的代币。

代币将根据用户提供的信息以及后端决定作为代币一部分的内容构建。为了获得更高的安全性,您可以将令牌信息扩展到用户的某些特定数据,如当前ip地址或设备mac地址,这将为您提供更安全的身份验证方式,但会限制用户每次使用同一设备,在新登录时,您可以发送确认电子邮件。

您使用什么web服务器?您必须在ajax请求中使用令牌吗?使用自定义web2py服务器作为框架。该令牌将在ajax中使用。