在本地主机上运行的 web 应用程序中的 openid 和 facebook 身份验证

发布于 2025-01-05 00:46:27 字数 392 浏览 1 评论 0原文

我的 java/javascript Web 应用程序正在开发中,我有一个 javascript 应用程序,它使用 ajax POST 命令与我的数据库(我在其中维护自己的用户 ID)进行通信,该命令到在 vmware 机器内的本地主机上运行的 servlet 容器。我希望能够在此开发设置中使用 Google、Yahoo 和 Facebook 身份验证登录,但在研究 Facebook 的 OAuth 2.0 方法时,您的 Web 应用程序似乎必须拥有指向 facebook 站点的链接,并提供重定向链接身份验证完成后返回您自己的站点。此方法不起作用,因为 facebook 无法重定向到本地主机地址并访问我的计算机,而我的计算机没有网络存在。

我在 OpenID 和 Google/Yahoo 身份验证方面是否也遇到同样的问题?

安迪

My java/javascript web application is in development, and I hava a javascript application that communicates with my database (where I maintain my own userids) using ajax POST commands to a servlet container running on localhost, within a vmware machine. I want to be able to login using Google, Yahoo, and Facebook authentication, on this development setup, but in studying Facebook's OAuth 2.0 method, it looks like your web application has to hava a link to the facebook site, and provide a redirect link back to your own site when authentication is finished. This method won't work because facebook can't redirect to a localhost address and reach my machine, which doesn't have a web presence.

Do I have the same issues with OpenID and Google/Yahoo authentication?

Andy

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

回忆躺在深渊里 2025-01-12 00:46:27

Facebook OAuth 可与本地主机应用程序配合使用。这是因为Facebook将浏览器重定向到您在oauth中提供的redirect_uri,您的浏览器知道http://localhost在哪里(我实际上使用了apache 和 windows 虚拟主机中的虚拟主机,不知道您是否可以在应用程序设置中输入 localhost 作为网站网址)。 Google Oauth完美运行

,但根据我的经验,它不适用于本地版本。不知何故,该网站需要从谷歌本身(不仅仅是浏览器)访问才能工作,但它没有,所以它不(我不记得确切的细节,抱歉)

不知道其他的

Facebook OAuth works with localhost apps. This is because Facebook redirects the browser to the redirect_uri you supply in oauth, your browser knows where http://localhost is (I actually used a virtual host in apache & windows vhosts, don't know if you can enter localhost as website url in your app settings). Works perfectly

Google Oauth however, in my experience, doesn't work on local version. Somehow the site needed to be accessible from Google itself (not just the browser) for this to work, and it didn't, so it doesn't (I don't remember the exact details, sorry)

Don't know about the others

久而酒知 2025-01-12 00:46:27

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

在 Windows 中,您可以通过编辑文件来完成此操作:
C:\Windows\System32\drivers\etc\hosts

添加新行:

127.0.0.1 mysite.com

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

诀窍在于,登录后,Facebook 或 Google 会通过以下内容响应您的应用程序:将用户重定向到经过身份验证的 mysite.com。然后,您的浏览器会将 mysite.com 解析为您的计算机,并且一切正常。

You could add DNS entries on your local machine so that mysite.com resolves to your local computer.
By doing this, you will be able to login from your local machine to do your tests.

In Windows, you can do this by editing the file:
C:\Windows\System32\drivers\etc\hosts

Add a new line:

127.0.0.1 mysite.com

Regarding OpenID, I am not sure if would accept logins from localhost URLs, but it will surely work after adding the entry in the hosts file and having a proper domain (even though it RESOLVES only on your computer).

The trick is that after login, Facebook or Google responds to your application with something like this: redirect the user to mysite.com as authenticated. Your browser then will resolve mysite.com as your machine and it is all working.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文