本地主机上运行的webapp中的openid和facebook身份验证

openid and facebook authentication in webapp running on localhost

本文关键字:openid 中的 facebook 身份验证 webapp 主机 运行      更新时间:2023-09-26

我的java/javascript web应用程序正在开发中,我有一个javascript应用程序,它使用ajax POST命令与我的数据库(我在数据库中维护自己的用户ID)通信,该命令指向vmware机器中本地主机上运行的servlet容器。我希望能够在这个开发设置中使用谷歌、雅虎和脸书身份验证登录,但在研究脸书的OAuth 2.0方法时,看起来你的网络应用程序必须有一个指向脸书网站的链接,并在身份验证完成后提供一个重定向链接回你自己的网站。这种方法不起作用,因为facebook无法重定向到本地主机地址并访问我的机器,因为我的机器没有网络存在。

我在OpenID和Google/Yahoo身份验证方面有同样的问题吗?

Andy

FacebookOAuth与localhost应用程序配合使用。这是因为Facebook将浏览器重定向到您在oauth中提供的redirect_uri,您的浏览器知道http://localhost在哪里(我实际上在apache&windowsvhosts中使用了一个虚拟主机,不知道您是否可以在应用程序设置中输入localhost作为网站url)。完美工作

然而,根据我的经验,Google Oauth在本地版本上不起作用。不知怎的,该网站需要从谷歌本身(而不仅仅是浏览器)访问才能运行,但它没有,所以它没有(我不记得确切的细节,对不起)

不知道其他

您可以在本地计算机上添加DNS条目,以便mysite.com解析到本地计算机。通过这样做,您将能够从本地机器登录进行测试。

在Windows中,可以通过编辑文件来执行此操作:C:'Windows'System32'drivers'etc'hosts

添加新行:

127.0.0.1 mysite.com

关于OpenID,我不确定是否会接受来自localhost URL的登录,但在主机文件中添加条目并拥有适当的域(即使它只在您的计算机上解决)后,它肯定会起作用。

诀窍是,登录后,Facebook或谷歌会用这样的方式响应您的应用程序:将用户重定向到经过身份验证的mysite.com。然后,您的浏览器会将mysite.com解析为您的机器,并且一切正常。