【发布时间】:2022-01-24 09:21:34
【问题描述】:
我想使用 Oauth 对用户进行身份验证,但在获取令牌的请求中,我必须将 client_id 和 client_secret 硬编码,是否有更好的形式来动态拥有这些凭据,或者我只有两个凭据供所有用户使用?
谢谢!
【问题讨论】:
我想使用 Oauth 对用户进行身份验证,但在获取令牌的请求中,我必须将 client_id 和 client_secret 硬编码,是否有更好的形式来动态拥有这些凭据,或者我只有两个凭据供所有用户使用?
谢谢!
【问题讨论】:
因此,对同一个身份验证提供程序的所有请求都将具有相同的client_id 和client_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 有一些这样的例子。
【讨论】: