我正在使用omniauth登录,我想知道如何存储用户的凭据,以便在他们关闭浏览器并且会话结束或决定退出后 - >他们下次尝试登录时不需要“允许访问”。
我正在使用OmniAuth Google和Identity的组合。我没有使用Devise。
答案 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。