Javascript 在本地主机上运行的webapp中的openid和facebook身份验证
我的java/javascript web应用程序正在开发中,我有一个javascript应用程序,它使用ajax POST命令与我的数据库(在那里我维护自己的用户ID)进行通信,并在vmware机器内的localhost上运行一个servlet容器。我希望能够在这个开发设置中使用Google、Yahoo和Facebook身份验证登录,但在研究Facebook的OAuth 2.0方法时,您的web应用程序似乎必须有一个指向Facebook站点的链接,并在身份验证完成后提供一个指向您自己站点的重定向链接。这种方法行不通,因为facebook无法重定向到本地主机地址并访问我的机器,因为我的机器没有网络存在 我在OpenID和Google/Yahoo身份验证方面有相同的问题吗Javascript 在本地主机上运行的webapp中的openid和facebook身份验证,javascript,ajax,servlets,openid,oauth-2.0,Javascript,Ajax,Servlets,Openid,Oauth 2.0,我的java/javascript web应用程序正在开发中,我有一个javascript应用程序,它使用ajax POST命令与我的数据库(在那里我维护自己的用户ID)进行通信,并在vmware机器内的localhost上运行一个servlet容器。我希望能够在这个开发设置中使用Google、Yahoo和Facebook身份验证登录,但在研究Facebook的OAuth 2.0方法时,您的web应用程序似乎必须有一个指向Facebook站点的链接,并在身份验证完成后提供一个指向您自己站点的重定
Andy您可以在本地计算机上添加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解析为您的机器,并且它都可以正常工作。Facebook OAuth可以与本地主机应用程序一起工作。这是因为Facebook将浏览器重定向到您在oauth中提供的重定向uri
,您的浏览器知道http://localhost
is(我实际上在apache和windows vhosts中使用了一个虚拟主机,不知道是否可以在应用程序设置中输入localhost作为网站url)。完美地工作
然而,根据我的经验,GoogleOAuth在本地版本上不起作用。不知何故,该网站需要从谷歌本身(不仅仅是浏览器)访问才能运行,但它没有,所以它没有(对不起,我不记得确切的细节)
我不知道其他人