0

我正在使用omniauth-google-oauth2 对google 和google 应用程序帐户进行身份验证。在我的应用程序中,用户使用他们的google 帐户登录以查看他们的google 分析数据。当用户使用有效的 GA 帐户正确登录时,身份验证已正确完成,但当该帐户未在 Google 分析中注册为

{
    "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 注册”的错误消息将用户重定向回登录页面

4

1 回答 1

0

你的omniauth范围是什么?我的猜测是你的范围内有一些东西。

如果您在 omniauth.rb(或您使用的任何初始化程序文件)中将设置更改为以下默认值:

provider :google_oauth2, "yourappid", "yourkey"

那么问题很可能会消失。如果是这样,那么这里发生的情况是您没有要求足够的许可。默认情况下,范围="userinfo.email,userinfo.profile"。如果您想要额外的权限,例如“somepermission”。然后,而不是使用以下

provider :google_oauth2, "yourappid", "yourkey", :scope => "somepermission"

你应该使用

provider :google_oauth2, "yourappid", "yourkey", :scope => "userinfo.email,userinfo.profile,somepermission"

否则,它不会为您提供omniauth 工作所需的电子邮件/个人资料。

于 2014-02-20T20:40:04.000 回答