如何避免在服务器上获取用户私人数据(用户的电子邮件)(Django Social Auth)
How to avoid getting user private data (user's email) on server (Django Social Auth)
在我的 Django 应用程序中,我使用 Python Social Auth 将 Google OAuth 用于我的站点登录。作为登录机制的一部分,身份验证中间件附加 User
对象以达到请求。因此,我可以通过我的服务器上的 request.user.email
轻松访问用户电子邮件(由于我网站的隐私政策,我不想这样做)。
那么有没有一种方法可以使用第三方身份验证系统而无需在我的服务器端获取用户电子邮件。
我写了一段代码,为第一次使用的用户分配username/alias,这将在以后的参考中使用。
您可以将 Google OAuth 范围配置为不请求来自 Google 的客户端电子邮件。
示例设置:
SOCIAL_AUTH_GOOGLE_OAUTH2_IGNORE_DEFAULT_SCOPE = True
SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = [
# only put here things that you want google to return
'https://www.googleapis.com/auth/userinfo.profile',
# something else ...
]
所有 Google OAuth2 范围都列在此 table 中:https://developers.google.com/identity/protocols/googlescopes#oauth2v2
在我的 Django 应用程序中,我使用 Python Social Auth 将 Google OAuth 用于我的站点登录。作为登录机制的一部分,身份验证中间件附加 User
对象以达到请求。因此,我可以通过我的服务器上的 request.user.email
轻松访问用户电子邮件(由于我网站的隐私政策,我不想这样做)。
那么有没有一种方法可以使用第三方身份验证系统而无需在我的服务器端获取用户电子邮件。
我写了一段代码,为第一次使用的用户分配username/alias,这将在以后的参考中使用。
您可以将 Google OAuth 范围配置为不请求来自 Google 的客户端电子邮件。
示例设置:
SOCIAL_AUTH_GOOGLE_OAUTH2_IGNORE_DEFAULT_SCOPE = True
SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = [
# only put here things that you want google to return
'https://www.googleapis.com/auth/userinfo.profile',
# something else ...
]
所有 Google OAuth2 范围都列在此 table 中:https://developers.google.com/identity/protocols/googlescopes#oauth2v2