在localhost上进行Omniauth Facebook身份验证

Rya*_*ter 22 facebook ruby-on-rails localhost omniauth

我正在尝试按照此Railscast中的描述设置Omniauth .虽然它适用于Twitter,但我无法让它与Facebook合作.我还将' http:// localhost:3000 '设置为siteurl,将'localhost'设置为域,但仍然在浏览器中看到以下错误消息:

Invalid redirect_uri: Given URL is not allowed by the Application configuration.
Run Code Online (Sandbox Code Playgroud)

你们有没有人对如何解决这个问题有任何建议?提前致谢.

小智 32

看一下URI中的重定向.我读了localhost:3000所以我将网站URL更改为"http:// localhost:3000 /"并且它有效.

  • 现在它有效!非常感谢你.之后我遇到了这个问题http://stackoverflow.com/questions/3977303/omniauth-facebook-certificate-verify-failed.我按照答案中给出的建议和另一个错误发生:没有路由匹配"/ auth/failure"..希望找到一个解决方案. (2认同)
  • 有没有办法在localhost中测试,仍然有应用程序在生产环境中工作?我的意思是,我只能通过Facebook访问我的应用程序,我想继续在本地测试,而无需更改Facebook上的重定向命运. (2认同)

小智 28

这对我有用.

现在Facebook不允许将站点域设置为IP,因此无法将站点URL设置为,http://127.0.0.1:3000/因为Facebook会抱怨URL与域不匹配.

所以在你的Facebook App中设置:

Site URL: http://localhost:3000/
Domain: localhost
Run Code Online (Sandbox Code Playgroud)

当您在开发机器上访问该应用程序时,请确保在浏览器中键入localhost:3000.如果你使用127.0.0.1:3000 OmniAuth将在它发送给Facebook的回调网址中使用它,然后Facebook将抛出Ryan上面提到的错误.


Jos*_*ews 15

我在本地浏览器中切换到http://lvh.me:3000以在本地测试facebook.然后在Facebook应用程序设置中,将lvh.me设为您的域名.

lvh.me是一个注册域,指向开发人员购买的127.0.0.1以在本地测试子域.


mon*_*cle 7

尝试使用

http://0.0.0.0:3000/
Run Code Online (Sandbox Code Playgroud)

对于"网站网址".这适合我.(另外,我在"站点域"字段中没有任何内容.)