我正在开发MVC核心2和IdentityServer4,外部用户已成功登录,我遇到的问题是此函数在HomeController中始终返回null。
var info = await _signInManager.GetExternalLoginInfoAsync();
但是当用户登录并从IdentityServer重定向回客户端时,它在AccountController中工作。
public async Task<IActionResult> ExternalLoginCallback(string returnUrl = null, string remoteError = null)
{
var info = await _signInManager.GetExternalLoginInfoAsync();
}
任何形式的帮助都将受到赞赏。
答案 0 :(得分:1)
我的问题在SignInScheme
中。当我在Startup
中注释下面的行并使用默认设置时,它开始起作用。
services.AddAuthentication().AddGoogle("Google", opt =>
{
//opt.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
...
}
答案 1 :(得分:0)
这一切都基于Cookie,因此请检查Cookie是否正确选取。我认为默认它会设置cookie的路径,这可能意味着它不会发送到您的AccountController,因为路径不同。