Flutter集成Google SignIn请求过多信息的解决方案咨询
可行,通过调整google_sign_in的配置和Google Cloud Console的设置就能实现,具体思路如下:
解决思路
- 禁用默认个人信息请求
google_sign_in包默认会自动添加profile、email这类基础个人信息权限,你需要在初始化时明确关闭这个行为。初始化GoogleSignIn实例时,只传入DriveApi.driveFileScope作为权限范围,同时设置includeEmail: false:
final GoogleSignIn _googleSignIn = GoogleSignIn( scopes: [DriveApi.driveFileScope], includeEmail: false, );
这样用户授权时,只会看到Google Drive文件访问的权限请求,不会再弹出索要姓名、邮箱、头像的提示。
检查OAuth consent screen配置
如果上面的设置没生效,去Google Cloud Console的OAuth consent screen页面确认:有没有把姓名、邮箱这类个人信息字段设为必填项?如果控制台强制要求这些字段,即使代码里不请求,Google也会在授权时让用户提供。把不需要的字段改为可选或者直接移除即可。注意后续业务适配
去掉这些权限后,你将无法通过google_sign_in的用户对象获取姓名、邮箱、头像信息。如果你的业务完全不需要这些数据,那没问题;如果需要,要么重新考虑是否必须移除这些权限,要么换其他方式收集用户信息(比如让用户手动填写)。
内容的提问来源于stack exchange,提问作者ethicnology
相关产品推荐
相关产品推荐

