我正在使用omniauth-google-oauth2来验证谷歌和谷歌应用帐户。在我的应用程序中,用户使用他们的谷歌帐户登录以查看他们的谷歌分析数据。 当用户使用有效的GA帐户正确登录时,Authenticaton可以正常完成,但当帐户未在Google Analytics中注册时会出现错误
{
"errors" = > [{
"domain" = > "global", "reason" = > "insufficientPermissions", "message" = > "User does not have any Google Analytics account."
}], "code" = > 403, "message" = > "User does not have any Google Analytics account."
}:
不知道如何处理此问题,并通过提供“帐户未在GA注册”的错误消息将用户重定向回登录页面
答案 0 :(得分:0)
你的omniauth范围是什么?我的猜测是你的范围内有东西。
如果您在omniauth.rb(或您正在使用的任何初始化程序文件)中将设置更改为以下默认设置:
provider :google_oauth2, "yourappid", "yourkey"
然后问题可能会消失。如果是这样,那么这里发生的是你没有要求足够的许可。默认情况下,scope =“userinfo.email,userinfo.profile”。如果您需要其他权限,例如“somepermission”。然后而不是使用以下
provider :google_oauth2, "yourappid", "yourkey", :scope => "somepermission"
你应该使用
provider :google_oauth2, "yourappid", "yourkey", :scope => "userinfo.email,userinfo.profile,somepermission"
否则它不会为您提供omniauth工作所需的电子邮件/个人资料。