python - 将密钥放入 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',)
从那里他被传递到:
- /layers/google.python.pip/pip/lib/python3.9/site-packages/jwt/api_jws.py,第 110 行,在编码中
- /layers/google.python.pip/pip/lib/python3.9/site-packages/jwt/algorithms.py,第 180 行,在 prepare_key
- /layers/google.python.pip/pip/lib/python3.9/site-packages/jwt/utils.py,第 21 行,在 force_bytes 中
无需更改,最后一个文件“utils.py”是引发错误消息的文件。我尝试更改变量名称,从键中删除特殊字符,在设置文件中移动定义,但没有任何效果。一旦我把它放回明文,它就可以正常工作,但出于明显的安全原因,我不能继续这样做。
我怎样才能解决这个问题?谢谢和BR
解决方案
推荐阅读
- spring - Spring Rest Controller - 业务验证和解析 id
- javascript - 如何将我的 FBX 文件压缩到 5MB 以下?
- javascript - 为什么当我点击页面时 setTimeout/setInterval 变慢?
- c# - 为什么 Visual Studio 会添加不同版本的引用?
- python - 实施对话时间测量 App Slack
- c# - 登录到网站重定向到 url 并获取新页面的 htmlsource?
- docker - 轻松访问 Windows Docker 容器上的文件
- php - 如何过滤表格,然后将输出打印为 pdf
- spring-webflux - 如何在反应性弹簧数据cassandra中使多个保存调用原子化?
- python - Python 未读取的自定义模块,生成 ImportError