示例#1
0
        /// <summary>
        /// 管理员登录
        /// </summary>
        /// <param name="command"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <Result <LoginTokenDto> > LoginAsync(AdminUserLoginCommand command, CancellationToken cancellationToken)
        {
            (var accessToken, var refreshToken) = await authService.LoginAsync(command, cancellationToken);

            return(RestFull.Success(data: new LoginTokenDto
            {
                Token = accessToken
            }));
        }
示例#2
0
        public async Task <Result <LoginTokenDto> > LoginAsync([Required][FromBody] AdminUserLoginCommand request, CancellationToken cancellationToken)
        {
            (var accessToken, var refreshToken) = await authService.LoginAsync(request, cancellationToken);

            return(RestFull.Success(data: new LoginTokenDto
            {
                Token = accessToken
            }));
        }
示例#3
0
        public async Task <Result <LoginTokenDto> > Login([FromBody] AdminUserLoginCommand command, CancellationToken cancellationToken)
        {
            (var accessToken, var refreshToken) = await _adminManager.LoginAsync(command);

            // 设置 Swagger 自动登录
            Web.HttpContext.SigninToSwagger(accessToken);
            // 设置刷新 token
            Web.HttpContext.Response.Headers["x-access-token"] = refreshToken;

            return(RestFull.Success(data: new LoginTokenDto
            {
                Token = accessToken
            }));
        }
示例#4
0
        public async Task <(string, string)> LoginAsync(AdminUserLoginCommand command)
        {
            var user = await bus.SendCommand(command);

            // 生成 token
            var accessToken = JWTEncryption.Encrypt(new Dictionary <string, object>
            {
                { userId, user.Id },
                { userName, user.UserName }
            });

            // 生成 刷新token
            var refreshToken = JWTEncryption.GenerateRefreshToken(accessToken);

            return(accessToken, refreshToken);
        }
示例#5
0
        public async Task <IActionResult> IndexAsync()
        {
            //测试接入登录

            var command = new AdminUserLoginCommand
            {
                Account  = "",
                Password = ""
            };

            //验证命令模型
            if (!command.IsVaild())
            {
                throw new Exception(command.GetErrors(""));
            }

            //登录
            var res = await adminLoginAppService.Login(command, CancellationToken.None);

            return(View());
        }
示例#6
0
        public async Task <(string, string)> LoginAsync(AdminUserLoginCommand command, CancellationToken cancellationToken = default)
        {
            var user = await adminUserService.LoginAsync(command, cancellationToken);

            // 生成 token
            var accessToken = JWTEncryption.Encrypt(new Dictionary <string, object>
            {
                { userId, user.Id },
                { userName, user.UserName }
            });

            // 生成 刷新token
            var refreshToken = JWTEncryption.GenerateRefreshToken(accessToken);

            // 设置 Swagger 自动登录
            Web.HttpContext.SigninToSwagger(accessToken);
            // 设置刷新 token
            Web.HttpContext.Response.Headers["x-access-token"] = refreshToken;

            return(accessToken, refreshToken);
        }
示例#7
0
 public async Task <Result <LoginTokenDto> > LoginAsync([Required][FromBody] AdminUserLoginCommand command, CancellationToken cancellationToken)
 {
     return(await loginAppService.LoginAsync(command, cancellationToken));
 }
示例#8
0
        public async Task <(string, string)> LoginAsync(AdminUserLoginCommand request, CancellationToken cancellationToken = default)
        {
            var user = default(AdminUserEntity);

            request.Password = Encrypt.Md5By32(request.Password);

            var loginWay = "";

            if (!Valid.IsMobileNumberSimple(request.Account))
            {
                user = await db.Context.AdminUser.Where(c => c.UserName.Equals(request.Account)).FirstOrDefaultAsync(cancellationToken);

                if (user == null)
                {
                    Failure.Error("账号不存在");
                }

                loginWay = "Mobile";
            }
            else
            {
                user = await db.Context.AdminUser.Where(c => c.Mobile.Equals(request.Account)).FirstOrDefaultAsync(cancellationToken);

                if (user == null)
                {
                    Failure.Error("手机号码不存在");
                }

                loginWay = "UserName";
            }

            if (!user.Password.Equals(request.Password))
            {
                Failure.Error("密码错误");
            }
            if (user.Status != Status.Show)
            {
                Failure.Error("您的帐号禁止登录,请与管理员联系!");
            }


            user.LoginCount   += 1;
            user.LoginLastTime = DateTime.Now;
            user.LoginLastIp   = Web.IP;

            user.LoginRecords.Add(new LoginRecordEntity
            {
                AdminId   = user.Id,
                LoginIp   = user.LoginLastIp,
                LoginTime = user.LoginLastTime,
                LoginWay  = loginWay
            });

            db.Update(user);

            // 生成 token
            var accessToken = JWTEncryption.Encrypt(new Dictionary <string, object>
            {
                { userId, user.Id },
                { userName, user.UserName }
            });

            // 生成 刷新token
            var refreshToken = JWTEncryption.GenerateRefreshToken(accessToken);

            // 设置 Swagger 自动登录
            Web.HttpContext.SigninToSwagger(accessToken);
            // 设置刷新 token
            Web.HttpContext.Response.Headers["x-access-token"] = refreshToken;

            return(accessToken, refreshToken);
        }