我使用ASP.NET MVC 5开发。 我在我的项目中添加了Google身份验证。 (OAuth的)
首先,我设置了谷歌开发控制台: 原始Javascript:http://localhost/ 重定向网址:http://localhost/signin-google 它运作良好。
然后,为了测试,我将项目存入我的办公室专用网络。 有虚拟目录'test231'并有3个区域(aa,bb,cc)。 并且所有3个区域都想使用谷歌身份验证。
所以我尝试以多种方式添加到Google开发控制台:
原始Javascript(失败):http://test231/aa/(or bb,cc)
- 醇>
原始Javascript:http://test231/
(1)重定向网址(失败):http://test231/signin-google
(2)重定向网址(失败):http://test231/aa/signin-google
所有案件都有'错误'。
错误: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");
}