python - 在 django 应用程序中全局存储 oauth2 访问令牌的最佳方法?
问题描述
我正在使用 django 作为与 oauth2-app 集成的项目的后端。我已经能够获得访问令牌,但我对如何存储它感到有点困惑。我希望它是秘密的,但是当管理员或其他用户从前端发出请求时,后端应该可以访问它=>然后到后端(加载外部应用程序访问令牌)=>然后到外部应用程序。
我已经尝试将它存储在管理员用户模型中,但是只有管理员可以访问它(除非我在每个请求中都获得管理员用户模型?似乎有点笨拙)
我也试过用 os.environ 存储它,但据我所知,这些在服务器重新启动时会被清除。
实现这一点的最佳方法是什么?
解决方案
Django all-auth 是一个很棒的包,可以为你做到这一点(https://django-allauth.readthedocs.io/en/latest/installation.html)
只需像这样添加您的社交帐户提供商:
# Provider specific settings
SOCIALACCOUNT_PROVIDERS = {
'google': {
# For each OAuth based provider, either add a ``SocialApp``
# (``socialaccount`` app) containing the required client
# credentials, or list them here:
'APP': {
'client_id': '123',
'secret': '456',
'key': ''
}
}
}
并将其网址添加到您的 urls.py
urlpatterns = [
...
path('accounts/', include('allauth.urls')),
...
]
推荐阅读
- android - JavaScript 接口注入漏洞修复
- python-3.x - 如何解决错误:UnicodeDecodeError:'utf-8'?
- python - 在 Tkinter 的 for 循环中创建暂停
- php - 将注册表单数据提交到数据库 - phpMyAdmin
- r - Web API - 如何在 R 中选择 httr::get() 请求中感兴趣的变量
- sql - 带有 INSERT 的 Oracle SQL 事务
- angular - 当我单击不同组件的按钮时,在不同组件的角度显示模式中?
- python - keras 序列模型中的多个输出
- elementor - 连接到 elementor 小部件?
- python - 如何在 Python 中将 [{'id':1'}] 之类的字符串转换为列表 [{'id':1'}] 数据类型?