Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何避免在服务器(Django Social Auth)上获取用户私有数据(用户电子邮件)_Python_Django_Email_Authentication_Privacy - Fatal编程技术网

Python 如何避免在服务器(Django Social Auth)上获取用户私有数据(用户电子邮件)

Python 如何避免在服务器(Django Social Auth)上获取用户私有数据(用户电子邮件),python,django,email,authentication,privacy,Python,Django,Email,Authentication,Privacy,在我的Django应用程序中,我使用GoogleOAuth登录我的站点。作为登录机制的一部分,身份验证中间件附加用户对象以访问请求。正因为如此,我可以通过我的服务器上的request.user.email轻松访问用户电子邮件,因为我的网站的隐私政策,我不想访问这些电子邮件 那么,有没有一种方法可以使用第三方身份验证系统而不必在我的服务器端收到用户电子邮件呢 我可以编写一个代码,为第一次使用的用户分配用户名/别名,这将在以后的引用中使用。您可以将Google OAuth scope配置为不向Goo

在我的Django应用程序中,我使用GoogleOAuth登录我的站点。作为登录机制的一部分,身份验证中间件附加用户对象以访问请求。正因为如此,我可以通过我的服务器上的request.user.email轻松访问用户电子邮件,因为我的网站的隐私政策,我不想访问这些电子邮件

那么,有没有一种方法可以使用第三方身份验证系统而不必在我的服务器端收到用户电子邮件呢


我可以编写一个代码,为第一次使用的用户分配用户名/别名,这将在以后的引用中使用。

您可以将Google OAuth scope配置为不向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作用域:

我以为我做了类似的事情,但在我的代码中找不到它,而且已经有一段时间了……尝试播放/搜索如何使用SOCIAL_AUTH_XXX_作用域变量,或其他社交身份验证变量,其中XXX=auth系统FACEBOOK@Harvey你可以把它排除在范围之外,我试过了。我在缺少必需参数的浏览器上遇到以下错误:scope@HarveyGoogleOAuth需要一个作用域。如果您没有请求配置文件,则必须至少请求一些内容。看到了吗?要获得最高标准的用户隐私,最好的方法是什么?@Harvey你甚至不想要用户名?在这种情况下,您应该使用此范围-https://www.googleapis.com/auth/plus.login. 如果用户是18岁以上或21岁以上,它将只获取用户的语言和年龄范围,以此类推。