【问题标题】:Get the client_id and client_secret dinamically in django with the social_oauth2 authentication使用社交 oauth2 身份验证在 django 中动态获取 client_id 和 client_secret
【发布时间】:2022-01-24 09:21:34
【问题描述】:

我想使用 Oauth 对用户进行身份验证,但在获取令牌的请求中,我必须将 client_id 和 client_secret 硬编码,是否有更好的形式来动态拥有这些凭据,或者我只有两个凭据供所有用户使用?

谢谢!

【问题讨论】:

    标签: python django oauth


    【解决方案1】:

    因此,对同一个身份验证提供程序的所有请求都将具有相同的client_idclient_secret(除非他们不这样做的原因)将它们视为身份验证服务的用户名和密码。对于任何普通服务,您都不会倾向于拥有多个密钥。

    您可以将这些凭据存储在 django 设置中,这意味着您可以为每个环境设置不同的 client_id/secret。它还使您能够更轻松地更改秘密(而不必将它们提交到源代码控制中)。

    社交身份验证本身将支持多个 client_id 和 client_secret 对。这些将取决于您启用的提供程序,并且可以在设置中进行配置。例如:

    SOCIAL_AUTH_TWITTER_KEY = 'foobar'
    SOCIAL_AUTH_TWITTER_SECRET = 'bazqux'
    
    # or
    
    SOCIAL_AUTH_GOOGLE_KEY = 'foobar'
    SOCIAL_AUTH_GOOGLE_SECRET = 'bazqux'
    

    这些密钥将自动用于您在设置中启用的每个身份验证提供程序。

    docs on django social auth 有一些这样的例子。

    【讨论】:

    • 所以我可以使用相同的 client_id 和 client_secret 使用自定义电子邮件登录,并使用其他 client_id 和 client_secret 使用 Gmail API 登录?
    猜你喜欢
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 2019-03-03
    • 2017-10-20
    • 2014-04-18
    相关资源
    最近更新 更多