Omniauth-facebook 登录无法正常工作

2024-02-14

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

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

我看到了这个最近关于 SO 的其他帖子 https://stackoverflow.com/questions/49310909/omniauth-facebook-login-does-not-work,但 Facebook 似乎不允许我在我今天创建的这个应用程序的开发者控制台中更改“强制使用 HTTPS 进行 Web OAuth 登录”设置。我可以更改旧应用程序的设置。

关于如何解决这个问题或解决这个问题有什么想法吗?我将在生产中使用 HTTPS,但只是希望能够在开发中使用 localhost (http)。


以 HTTPS 模式运行本地服务器很多时候都很有用,而不仅仅是 facebook api。

尽管如此,Rails 仍然不提供简单的方法 https://www.devmynd.com/blog/rails-local-development-https-using-self-signed-ssl-certificate/以 SSL 模式运行 Rails 服务器。但有几种方法可以实现这一目标:

Use thin服务器而不是 puma/webrick Rails 默认服务器

thin服务器允许您以最小的努力在 SSL 模式下运行应用程序:

Edit config/application.rb并添加:

config.force_ssl = true

Start thin server:

$ thin start --ssl

请在此处查看有关此内容的完整信息:如何在两分钟内启用SSL for Rails开发环境? https://blog.botreetechnologies.com/enable-ssl-in-developement-using-thin-2a4bd1af500d

使用 http 隧道工具,例如ngrok

类似的工具ngrok https://ngrok.com/允许您轻松创建从本地主机到互联网的隧道 - 它还创建了两者http:// and 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并用它来访问您的本地服务器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Omniauth-facebook 登录无法正常工作 的相关文章

随机推荐