Omniauth-facebook登录无法正常工作

时间:2018-03-18 22:31:13

标签: ruby-on-rails omniauth omniauth-facebook

当我尝试使用omniauth-facebook登录我的Rails应用程序时,我收到以下错误。这是在localhost:3000:

上进行测试时

不安全登录被阻止:您无法获取访问令牌或从不安全的页面登录此应用。尝试将页面重新加载为https://

我看到了这个other recent post on SO,但Facebook似乎并没有允许我更改“为OA OAuth登录强制HTTPS”#34;我今天创建的此应用程序的开发人员控制台中的设置。我可以更改旧应用的设置。

有关如何解决此问题或绕过它的任何想法?我将在生产中使用HTTPS,但只是希望能够在开发中使用localhost(http)。

1 个答案:

答案 0 :(得分:2)

以HTTPS模式运行本地服务器可能很多次,不仅仅适用于facebook api。

尽管如此,Rails仍然do not provide an easy way以SSL模式运行rails服务器。但是有几种方法可以实现这一目标:

使用thin服务器代替puma / webrick rails默认服务器

thin服务器允许您以最少的工作量以SSL模式运行应用程序:

修改config/application.rb并添加:

config.force_ssl = true

启动thin服务器:

$ thin start --ssl

在此处查看完整信息:How to enable SSL for Rails development environment in two minutes?

使用ngrok

等http隧道工具

ngrok这样的工具可以让您轻松地创建从本地主机到互联网的隧道 - 它还可以为您创建http://https://个端点:

$ rails s -p 3000
$ ./ngrok http 3000

ngrok by @inconshreveable                                                                                                                                            (Ctrl+C to quit)

Session Status                online                                                                                                                                                 
Session Expires               7 hours, 59 minutes                                                                                                                                    
Version                       2.2.8                                                                                                                                                  
Region                        United States (us)                                                                                                                                     
Web Interface                 http://127.0.0.1:4040                                                                                                                                  
Forwarding                    http://2608e936.ngrok.io -> localhost:3000                                                                                                             
Forwarding                    https://2608e936.ngrok.io -> localhost:3000    

复制生成的网址(例如https://2608e936.ngrok.io,并使用它来访问本地服务器。

相关问题