Ars*_*nko 30 python session session-cookies flask
使用会话时,Flask需要一个密钥.在我看过的每个例子中,秘密密钥以某种方式生成,然后存储在源代码或配置文件中.
永久存储它的原因是什么?为什么不在应用程序启动时简单地生成它?
app.secret_key = os.urandom(50)
Run Code Online (Sandbox Code Playgroud)
dav*_*ism 40
密钥用于签署会话cookie.如果必须重新启动应用程序并重新生成密钥,则所有现有会话都将失效.这可能不是你想要的(或者至少,不是使会话无效的正确方法).对于依赖于密钥的任何其他东西,可以进行类似的情况,例如由itsdangerous生成的令牌以提供重置密码URL(例如).
应用程序可能需要重新启动,因为崩溃,或者因为服务器重新启动,或者因为您正在推送错误修复或新功能,或者因为您正在使用的服务器生成新进程等等所以您不能依赖在服务器上永远.
标准做法是将一些一次性密钥提交给repo(以便dev机器有一些东西),然后在部署时在本地配置中设置密钥.这样,密钥不会泄露,也不需要重新生成.
还有运行依赖于应用程序上下文的辅助系统的情况,例如用于运行后台任务的Celery或应用程序的多个负载平衡实例.如果应用程序的每个运行实例具有不同的设置,则在某些情况下它们可能无法正确地协同工作.
| 归档时间: |
|
| 查看次数: |
6710 次 |
| 最近记录: |