Oauth 2.0 使用本地DNS重新映射时Google OAuth 2错误重定向\u uri\u不匹配

Oauth 2.0 使用本地DNS重新映射时Google OAuth 2错误重定向\u uri\u不匹配,oauth-2.0,google-oauth,google-api-dotnet-client,Oauth 2.0,Google Oauth,Google Api Dotnet Client,当我在本地测试我的ASP.Net应用程序时,我使用一个名为DNSSpeeder的DNS工具,它接管我机器的DNS进程。实际上,我可以在本地设置www.mysite.com并输入IP地址,如192.168.178.200,在我的浏览器中只需输入www.mysite.com,它就会从本地IIS web服务器启动。当我准备好进行生产时,我只需禁用DNSSpeeder,以便使用Internet的DNS来查找我的站点 我面临的问题是,当我使用GoogleOAuth将代码交换为令牌时。它返回的错误为重定向\

当我在本地测试我的ASP.Net应用程序时,我使用一个名为DNSSpeeder的DNS工具,它接管我机器的DNS进程。实际上,我可以在本地设置www.mysite.com并输入IP地址,如192.168.178.200,在我的浏览器中只需输入www.mysite.com,它就会从本地IIS web服务器启动。当我准备好进行生产时,我只需禁用DNSSpeeder,以便使用Internet的DNS来查找我的站点

我面临的问题是,当我使用GoogleOAuth将代码交换为令牌时。它返回的错误为重定向\u uri\u不匹配。我不清楚谷歌服务器上到底发生了什么,谷歌看到了什么URI。URI重定向确实与API控制台中的内容相匹配,尽管这并没有说明在离开DNSSpeeder后实际发送到Google服务器的内容。我试过Wireshark,但它什么也没显示。可能是用https加密的。而不是使用http://localhost:8080,我试过了http://localhost:80 以及http://192.168.178.200 对于Javascript的起源,但这没有帮助

在本地测试以获得成功的令牌时,是否可以使用本地主机以外的IP地址?

在本地测试以获得成功的令牌时,是否可以使用本地主机以外的IP地址

是的,这是可能的。我的设置是,我在云控制台中配置了两个重定向URLhttp://dev.mydomain.com/redirect.

然后我在linux上编辑/etc/hosts,Windose等价物位于system32\drivers的某处,用于将dev.mydomain.com映射到127.0.0.1

而且效果很好。你可能需要调整你的应用程序,使重定向URL不是硬编码的,但实际上根据你的应用程序是否感觉到它在开发或生产中而有所不同

需要注意的一点是,确认重定向URL必须是与实际URL匹配的字符。因此,请注意您同时拥有http和https变体,并注意后面的斜杠。如有必要,配置带有和不带尾随斜杠