当我尝试使用omniauth-facebook登录我的Rails应用程序时,我收到以下错误。这是在localhost:3000:
上进行测试时不安全登录被阻止:您无法获取访问令牌或从不安全的页面登录此应用。尝试将页面重新加载为https://
我看到了这个other recent post on SO,但Facebook似乎并没有允许我更改“为OA OAuth登录强制HTTPS”#34;我今天创建的此应用程序的开发人员控制台中的设置。我可以更改旧应用的设置。
有关如何解决此问题或绕过它的任何想法?我将在生产中使用HTTPS,但只是希望能够在开发中使用localhost(http)。
答案 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
像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
,并使用它来访问本地服务器。