在ASP.NET 4.5 webforms应用程序中设置OAuth redirect_uri的位置

时间:2014-08-07 13:33:28

标签: c# asp.net .net webforms oauth-2.0

我无法在任何地方找到如何在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)收到此错误。

5 个答案:

答案 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)

看了很多答案后,这对我有用:

  1. 启用Google + API
  2. 默认重定向URI为/ signin-google,因此请将其添加到授权重定向URI。 enter image description here

  3. 将其添加到RouteConfig文件:

    routes.MapRoute(名称:“signin-google”,url:“signin-google”,默认值:new {controller =“Account”,action =“ExternalLoginCallback”});

  4. 希望通过这个问题帮助任何人。

答案 2 :(得分:6)

您必须启用Google+ API(默认情况下不启用)。

Enable Google+ API https://console.developers.google.com/project/projectId/apiui/apiview/plus

默认 CallbackPath /signin-google)没问题,但您必须将其添加到凭据上的 REDIRECT URIS - OAuth ClientID(您可以替换默认{ {1}})。

答案 3 :(得分:0)

还需要打开 SSL

我做了thenningerSanchitos张贴的内容。

但是只有在我使用SSL运行我的webApp之后才能运行。

您可以在此处打开项目属性中的SSL:

enter image description here

确保应用程序从正确的地址开始:

enter image description here

答案 4 :(得分:-2)

我需要在路径中添加更多路径,如下所示:

 routes.MapRoute(name: "signin-google", url: "localhost:44336/signin-google", defaults: new { controller = "Account", action = "ExternalLoginCallback" });