首页 > 解决方案 > 将密钥放入 Google App Engine 上的环境变量时,简单的 jwt 会中断

问题描述

在使用 simplejwt 库托管在 Google App Engine 上的 Django 项目中,只要将密钥放入环境变量并尝试在 jwt/create 端点创建令牌,我就会收到此错误消息:

/api/v1/auth/jwt/create/ 处的 TypeError 应为字符串值

密钥作为 SECRET_KEY_ENV 存储在应用程序的 yaml 文件中,并加载到 Django 的设置文件中,如下所示:

SECRET_KEY = str(os.environ["SECRET_KEY_ENV"]),

数据库环境变量以完全相同的方式加载,一切正常。

第一次弹出错误信息的key在这个文件中:

/layers/google.python.pip/pip/lib/python3.9/site-packages/jwt/api_jwt.py,第 63 行,在编码中

并以这种形式:

key :   ('ai0eobey86soimfxb6ax4uqdmo49yiauxchgnspsh',)

从那里他被传递到:

无需更改,最后一个文件“utils.py”是引发错误消息的文件。我尝试更改变量名称,从键中删除特殊字符,在设置文件中移动定义,但没有任何效果。一旦我把它放回明文,它就可以正常工作,但出于明显的安全原因,我不能继续这样做。

我怎样才能解决这个问题?谢谢和BR

标签: pythondjangogoogle-app-engineenvironment-variablesdjango-rest-framework-simplejwt

解决方案


推荐阅读