我正在开发一个使用Facebook登录的网站。现在,我希望能够在我的生产环境以及开发环境中使用它。
在Facebook上,我可以提供一个网站网址,Facebook可以重定向到。这在我的开发阶段很有效,但现在我希望它既可以用于生产,也可以用于开发我的解决方案。
我想有一种方法是使用我的domain-navn在本地IIS上运行我的应用程序并更改我的主机文件,但这不是最容易解决的问题!?
- 在两种环境中使其工作的最简单方法是什么?
更新:截至2018年,此设置的路径现在是产品> Facebook登录>设置>客户端OAuth设置此答案的其余部分仍然有效。
有一个更好的办法。您只需将本地主机的有效回调URL添加到“设置”>“高级”>“OAuth设置”。
此方法允许您仍然拥有生产网站URL,同时允许来自开发,登台,生产等的oauth。
在我使用了大约6个月之后,我找到了一个基于其他两个答案的解决方案。
在Facebook我添加了两个应用程序:
然后,在我的web.config
应用程序设置中,我有:
<!--Prod-->
<add key="_FacebookApiId" value="id"/>
<add key="_FacebookApiSecretId" value="secret_id"/>
<!--Dev-->
<add key="FacebookApiId" value="dev_id"/>
<add key="FacebookApiSecretId" value="dev_secret_id"/>
当然,这是通过帮助类来阅读的。
然后它在生产和本地主机上无缝地工作,我和我的团队都很高兴。
我也有同样的问题。
我发现的唯一解决方案是:
根据this answer中的建议,如果将移动URL设置为您的开发域(即localhost)并将站点URL设置为您的生产域,则可以使用它。
更新的方式。
在App Dashboard中,选择您的应用程序,然后转到产品> Facebook登录>设置。在“客户端OAuth设置”下,在“有效OAuth重定向URI”字段中输入重定向URL,以便成功进行授权。
有关更多信息,请访问https://developers.facebook.com/docs/facebook-login/web。
当您的应用处于开发模式时,Facebook仅允许localhost OAuth重定向。这意味着您无法在生产环境中运行应用程序并执行本地开发测试。
相反,您需要创建应用的测试变体。前往https://developers.facebook.com并查看生产应用程序的仪表板。单击左上角的下拉菜单,然后选择Create Test App。
这将使用与生产应用程序几乎相同的设置填充测试应用程序。但是,它会为您提供新的应用程序ID和应用程序密钥,因此您需要在开发模式下运行时切换这些设置(如其他答案所示)。
以下是有关测试应用程序的更多信息:https://developers.facebook.com/docs/apps/test-apps/