我正在尝试实现一个简单的登录页面,将用户重定向到 OAuth2.0 登录服务器,然后在他们成功登录后返回回调 URL。
但是我不断收到错误消息的异常:
收到与预期值不匹配的回调和客户端状态的意外 OAuth 授权响应。
通过调试,我注意到在调用“RequestUserAuthorization()”之前和之后的会话 id 是不同的。
我从一些 SO 答案中读到我需要以某种方式防止会话更改,但不确定如何在这种情况下实现这一点。
任何帮助将不胜感激,谢谢!
我的提炼实现如下:
private readonly WebServerClientCustomImpl _oauthClient = new WebServerClientCustomImpl();
public ActionResult Login()
{
IAuthorizationState auth = null;
auth = _oauthClient.ProcessUserAuthorization();
if (auth == null)
{
_oauthClient.RequestUserAuthorization(returnTo: _redirectUrl);
}
else
{
// Save authentication information into cookie.
HttpContext.Response.Cookies.Add(auth.CreateAuthCookie());
return RedirectToAction("Index", "Home");
}
ViewBag.Message = "Future login page...";
return View();
}