我无法在任何地方找到如何在ASP.NET 4.5 webforms应用程序中设置OAuth2 redirect_uri。默认情况下,它设置为localhost,当然我从谷歌获得此错误:
The redirect URI in the request: http://localhost:3884/signin-google did not
match a registered redirect URI
这来自Facebook:
Given URL is not allowed by the Application configuration.: One or more of the
given URLs is not allowed by the App's settings. It must match the Website URL
or Canvas URL, or the domain must be a subdomain of one of the App's domains.
我从我的网站域(而不是来自localhost)收到此错误。
答案 0 :(得分:20)
我正在测试内置的外部登录逻辑以进行身份验证,即使我的Google API凭据正确,我也收到了此错误。例如,重定向URI设置为:
http://localhost:29405/signin-google
奇怪的是,Google身份验证的默认CallbackPath是“/ signin-google”但我必须在App_Start / Startup.Auth中设置此项,所以我添加了这一行并且它有效:
CallbackPath = new PathString(“/ signin-google”)
所以...
app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
{
ClientId = "YOUR CLIENT ID",
ClientSecret = "YOUR CLIENT SECRET",
CallbackPath = new PathString("/signin-google")
});
答案 1 :(得分:13)
看了很多答案后,这对我有用:
默认重定向URI为/ signin-google,因此请将其添加到授权重定向URI。
将其添加到RouteConfig文件:
routes.MapRoute(名称:“signin-google”,url:“signin-google”,默认值:new {controller =“Account”,action =“ExternalLoginCallback”});
希望通过这个问题帮助任何人。
答案 2 :(得分:6)
您必须启用Google+ API
(默认情况下不启用)。
https://console.developers.google.com/project/projectId/apiui/apiview/plus
默认 CallbackPath (/signin-google
)没问题,但您必须将其添加到凭据上的 REDIRECT URIS - OAuth ClientID(您可以替换默认{ {1}})。
答案 3 :(得分:0)
还需要打开 SSL
我做了thenninger和Sanchitos张贴的内容。
但是只有在我使用SSL运行我的webApp之后才能运行。
您可以在此处打开项目属性中的SSL:
确保应用程序从正确的地址开始:
答案 4 :(得分:-2)
我需要在路径中添加更多路径,如下所示:
routes.MapRoute(name: "signin-google", url: "localhost:44336/signin-google", defaults: new { controller = "Account", action = "ExternalLoginCallback" });