Beispiel #1
0
        public async Task <IActionResult> OAuth2Callback(string returnUrl = null, string remoteError = null)
        {
            if (remoteError != null)
            {
                Logger.LogError($"第三方登录错误:{remoteError}");
                return(Unauthorized());
            }
            ExternalLoginInfo info = await _signInManager.GetExternalLoginInfoAsync();

            if (info == null)
            {
                return(Unauthorized());
            }
            Logger.LogWarning($"ExternalLoginInfo:{info.ToJsonString()}");
            var result = await _signInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, false, true);

            Logger.LogWarning($"SignInResult:{result.ToJsonString()}");
            if (result.Succeeded)
            {
                Logger.LogInformation($"用户“{info.Principal.Identity.Name}”通过 {info.ProviderDisplayName} OAuth2登录成功");
                return(Ok());
            }
            return(Unauthorized());
        }