Google Omniauth - 完成会话后记住用户授权

时间:2013-02-11 17:24:11

标签: ruby-on-rails omniauth

我正在使用omniauth登录,我想知道如何存储用户的凭据,以便在他们关闭浏览器并且会话结束或决定退出后 - >他们下次尝试登录时不需要“允许访问”。

我正在使用OmniAuth Google和Identity的组合。我没有使用Devise。

2 个答案:

答案 0 :(得分:2)

在您的omniauth配置文件中,添加以下内容:

provider :google_oauth2, ENV['GOOGLE_KEY'], ENV['GOOGLE_SECRET'],
  {
    approval_prompt: 'auto'
  }

修改

在新版本的google_oauth2 gem中,默认情况下会记住用户授权。如果您希望用户始终必须授权登录,请使用新的prompt选项:

provider :google_oauth2, ENV['GOOGLE_KEY'], ENV['GOOGLE_SECRET'],
  {
    prompt: 'consent'
  }

有关详细信息,请参阅the documentation

答案 1 :(得分:1)

您可以将user_id存储为浏览器Cookie。当有cookie的未登录用户访问您的网站时,请查找该用户的身份验证提供程序(在本例中为Google)并查询提供程序以查看用户是否已登录该网站。

或者,使用Devise :)它可以通过Rememberable module非常轻松地集成OmniAuth。