Exemplo n.º 1
0
        /// <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);
                }
            }
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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, "用户登出成功"));
        }
Exemplo n.º 4
0
        /// <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);
        }