/// <summary> /// 注销登录 /// </summary> /// <param name="data"></param> /// <returns></returns> public async Task Logout(LogoutEventData data) { foreach (var userId in data.UserIds) { var records = await _loginRecordRep.GetLoginRecords(userId, data.PublishTime); foreach (var item in records) { var key = $"{_appSettings.RedisPrefix.Login}{userId}_{item.JwtJti}"; RedisHelper.Del(key); } } }
/// <summary> /// 账号退出 /// </summary> /// <param name="userId">用户编号</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> Logout(int userId) { //await _signInManager.SignOutAsync(); //todo: Site和API的授权与退出,分别处理 _logger.LogInformation(4, $"用户 {userId} 登出系统"); //触发登出成功事件 LogoutEventData logoutEventData = new LogoutEventData() { UserId = userId }; await _eventBus.PublishAsync(logoutEventData); return(OperationResult.Success); }
/// <summary> /// 账号退出 /// </summary> /// <param name="userId">用户编号</param> /// <param name="isToken">是否token认证</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> Logout(int userId, bool isToken = true) { if (!isToken) { await SignInManager.SignOutAsync(); } Logger.LogInformation(4, $"用户 {userId} 登出系统"); //触发登出成功事件 LogoutEventData logoutEventData = new LogoutEventData() { UserId = userId }; await EventBus.PublishAsync(logoutEventData); return(new OperationResult(OperationResultType.Success, "用户登出成功")); }
/// <summary> /// 账号退出 /// </summary> /// <param name="userId">用户编号</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> Logout(int userId) { //await _signInManager.SignOutAsync(); HttpContext httpContext = _httpContextAccessor.HttpContext; await httpContext.SignOutAsync(IdentityConstants.ApplicationScheme); _logger.LogInformation(4, $"用户 {userId} 登出系统"); //触发登出成功事件 LogoutEventData logoutEventData = new LogoutEventData() { UserId = userId }; await _eventBus.PublishAsync(logoutEventData); return(OperationResult.Success); }