我想使用Google身份验证,但我收到400错误:Invalid_request

时间:2015-01-22 07:00:08

标签: javascript asp.net url redirect oauth

我使用ASP.NET MVC 5开发。 我在我的项目中添加了Google身份验证。 (OAuth的)

首先,我设置了谷歌开发控制台: 原始Javascript:http://localhost/ 重定向网址:http://localhost/signin-google 它运作良好。

然后,为了测试,我将项目存入我的办公室专用网络。 有虚拟目录'test231'并有3个区域(aa,bb,cc)。 并且所有3个区域都想使用谷歌身份验证。

所以我尝试以多种方式添加到Google开发控制台:

  
      
  1. 原始Javascript(失败):http://test231/aa/(or bb,cc)

  2.   
  3. 原始Javascript:http://test231/

         

    (1)重定向网址(失败):http://test231/signin-google

         

    (2)重定向网址(失败):http://test231/aa/signin-google

  4.   

所有案件都有'错误'。

  

错误:invalid_request

     

redirect_uri的参数值无效:不允许使用非公共域:http://test231/aa/signin-google

localhost和test231之间没有区别。

如何在测试服务器中使用Google身份验证? 我必须在开发控制台注册什么网址?

登录视图

    using (Html.BeginForm("ExternalLogin", "Account", new { ReturnUrl = Model.ReturnUrl }))
    {
       <button type="submit" class="btn btn-lg btn-danger">Login</button>
    }

ExternalLogin(AccountController)

    public ActionResult ExternalLogin(string provider, string returnUrl)
    {
        return new ChallengeResult(provider, Url.Action("ExternalLoginCallback", "Account", new { ReturnUrl = returnUrl }));
    }

ExternalLoginCallback(AccountController)

    public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
    {
        var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
        var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false);
        return View("ExternalLoginConfirmation");
    }

0 个答案:

没有答案