【发布时间】:2017-02-16 17:17:40
【问题描述】:
问题
我有 Devise Omniauth-Facebook 身份验证。使用 facebook 登录有效,但是当用户转到 localhost:3000 时会话丢失。
我有以下 GEM:
Devise 4.2.0
Rails 5
omniauth 1.4.0
omniauth-facebook 4.0.0
omniauth-oauth2 1.4.0
说明
会话对未通过 Omniauth-Facebook 进行身份验证的用户正常工作,
这是我的devise.rbomniauth-facebook 设置:
config.omniauth :facebook, "APP_ID", "APP_SECRET", callback_url: "http://127.0.0.1:3000/users/auth/facebook/callback", scope: 'public_profile, email', image_size: 'large', provider_ignores_state: true
我已经尝试了以下不起作用的解决方案:
- 关闭protect_from_forgery
- OmniAuth.config.full_host = "http://127.0.0.1:3000"
- 遵循 Jeroen van Dijk 在以下帖子中接受的解决方案:
Devise and OmniAuth remembering OAuth
对于这个解决方案,在我的 rake 路由中,我没有路径
user_oauth_connect_path,即使我在routes.rb中添加了路由。我也认为这不是我的问题的解决方案,因为我有 Devise 4.2.0 和 Rails 5 - @user.remember_me = true
之前的所有解决方案都取自以下stackoverflow讨论:
Omniauth+Facebook lost session
Devise and OmniAuth remembering OAuth
代码是 Devise 和 omniauth-facebook 的 github 指南中包含的标准代码 非常感谢你的帮助 法布里齐奥·贝托利奥
【问题讨论】:
-
我刚刚发现了这个讨论,现在功能运行良好。如果我尝试实施此解决方案,我将发布答案。 coderwall.com/p/bsfitw/…
标签: ruby-on-rails devise ruby-on-rails-5 omniauth-facebook