【问题标题】:Best way to store oauth2 access token globally in django app?在 django 应用程序中全局存储 oauth2 访问令牌的最佳方法?
【发布时间】:2020-07-29 21:25:25
【问题描述】:

我使用 django 作为与 oauth2-app 集成的项目的后端。我已经能够获得访问令牌,但我对如何存储它感到有点困惑。我希望它是秘密的,但是当管理员或其他用户从前端发出请求时,后端应该可以访问它=>然后到后端(加载外部应用程序访问令牌)=>然后到外部应用程序。

我尝试将它存储在管理员用户模型中,但只有管理员可以访问它(除非我在每个请求中都获得管理员用户模型?似乎有点笨重)

我也尝试过将其与 os.environ 一起存储,但据我所知,这些会在服务器重新启动时被清除。

实现这一点的最佳方式是什么?

【问题讨论】:

    标签: python django oauth-2.0


    【解决方案1】:

    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')),
        ...
    ]
    

    【讨论】:

    • 我对 allauth 很熟悉,但我的应用未在提供程序下列出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    相关资源
    最近更新 更多