MVC谷歌登录 - OpenID授权请求包含未注册的域名

11

今天我尝试通过Google在我的Web应用程序中登录时,出现了以下错误:

400 这是一个错误。

OpenID授权请求包含未注册的域: http://XXX.XXX.XXX/ (这里是IP地址)

但在本地主机上一切正常。更重要的是,在其他项目上也一切都运转良好。

我正在使用默认的OAuth:

OAuthWebSecurity.RegisterGoogleClient();

如何解决?


你是在MVC中使用它还是在简单的ASP.NET Web应用程序中使用它? - Nimit Joshi
我正在使用asp.net MVC 4。 - whoah
相关问题:https://dev59.com/VmAg5IYBdhLWcg3wSpTD - calebboyd
3个回答

6
我希望在本文中为开发者提供一些上下文和潜在的解决方案。
在二月份,我们宣布将废弃OpenID 2.0(OID2),并计划于2015年4月停用。我们还宣布,自2014年4月以来将不再接受新的OID2信任方(RP)注册。
考虑到API将在不到一年的时间内关闭,我们的意图是避免新的RP集成Google的OID2 API。相反,我们建议使用我们认为更安全且更易于实现的OpenID Connect API
注册已于5月19日生效(如Google OID2开发人员文档所述)。所有已使用OID2的RP不应受此关闭的影响。

对于当前正在与我们的OID2 API集成工作的开发人员(可能是因为他们错过了我们OID2文档中的公告和警告),我们将尽最大努力减少注册关闭所造成的摩擦。如果您处于这种情况,请在6月15日之前发布注册请求让我们知道。该帖子应包含您的应用程序使用的示例OID2请求,如果您不愿透露此类信息,请发布电子邮件地址,我们会与您联系。我们计划研究每个案例,并尽最大努力以最佳方式解除封锁。

Miguel。

** OID2没有为与身份提供者集成的RPs设置注册流程。当联系Google OID2 API时,RPs与领域值(例如www.example.com)相关联。因此,如果其领域值已用于联系我们的OID2 API,则将认为RP已“注册”。


3

由于Google将其身份验证方式更改为OAuth2,因此此方法已过时。

我没有删除此回答,因为以前批准的API用户仍然可以使用。

== 下面是原始帖子 ==

如果您是基于OWIN的MVC5用户,只需更改 Startup.Auth.cs 文件即可。

        app.UseGoogleAuthentication();

to

app.UseGoogleAuthentication(
 clientId: "000-000.apps.googleusercontent.com",
 clientSecret: "00000000000");

根据http://www.asp.net/mvc/tutorials/mvc-5/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on页面所述,这是有关IT技术的内容。

我们如何为ASP.NET MVC 4项目修复它? - sanjeev
2
如何获取客户端 ID 和客户端密钥? - Er Mayank
@ErMayank,它在Google开发者控制台中。 - Youngjae
1
@Youngjae,你能否给我提供一段代码(针对MVC4),因为我的应用程序在MVC4中使用了OAuthWebSecurity.RegisterGoogleClient(),而这个现在已经不被Google支持了。我必须将其改为MVC4。 - Er Mayank
@ErMayank // 因为我没有任何基于MVC4的方法,所以您可以使用一些来自nuget的组件。我不知道哪个会起作用,但我相信有一个适合的包。 - Youngjae
显示剩余2条评论

1

那么我们现在必须使用OAuth2吗?或者还有其他解决方案? - whoah
是的,OAuth2/OpenID Connect 是首选解决方案。您可以在 Google 开发者文档中找到有关该协议的信息:https://developers.google.com/accounts/docs/OAuth2Login关于迁移步骤,请参阅此处:https://developers.google.com/accounts/docs/OpenID希望这能帮到您。 - Miguel Andres

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接