Ruby on rails 已经登录Facebook,为什么在使用Desive时需要重新验证

Ruby on rails 已经登录Facebook,为什么在使用Desive时需要重新验证,ruby-on-rails,ruby,facebook,devise,Ruby On Rails,Ruby,Facebook,Devise,我正在使用Desive和omniauth facebook gem。我已经成功地配置了它。然而,我想知道,当我已经在浏览器的另一个选项卡上登录Facebook时,为什么我需要在我的应用程序中单击登录链接时重新验证?这里不应该有魔法吗?或者这是预期的行为?这是预期的。这是facebook确保你的用户确实在试图让某人访问他们的信息的方式。事实证明,使用这种方法: <%= link_to 'Sign in', volunteer_omniauth_authorize_path(:facebook

我正在使用Desive和omniauth facebook gem。我已经成功地配置了它。然而,我想知道,当我已经在浏览器的另一个选项卡上登录Facebook时,为什么我需要在我的应用程序中单击登录链接时重新验证?这里不应该有魔法吗?或者这是预期的行为?

这是预期的。这是facebook确保你的用户确实在试图让某人访问他们的信息的方式。

事实证明,使用这种方法:

<%= link_to 'Sign in', volunteer_omniauth_authorize_path(:facebook) %>

它按预期工作。当用户登录到Facebook时,他/她不必重新输入身份验证信息。注销Facebook时,用户必须重新验证


棒极了。

好吧,但是spotify等应用程序会自动让你登录吗?我猜他们做了一些不同的事情?我几天前刚刚在一个应用程序中实现了这一点。我记得,用户必须在第一时间向(facebook)提供密码才能授权数据传输和创建用户。随后的时间里,他们不会这样做,因为他们已经这样做了,它只是创建一个会话,而不是一个新用户。在我自己的应用程序中测试,这就是它的运行方式。这来自于我对OA或FB API文档的回忆。挖掘任何一方的来源都可能证明这是错误的。