Esempio n. 1
0
        public async Task <IDataResult <AppUser> > Login(AppUserLoginInput loginInput)
        {
            var user = await GetAppUserByFilter(t => t.Email == loginInput.Email);

            if (!user.Success)
            {
                return(new ErrorDataResult <AppUser>(Messages.EmailOrPasswordWrong));
            }
            if (user.Data.LockoutEnabled)
            {
                return(new ErrorDataResult <AppUser>(Messages.UserLocked));
            }

            var passwordCheck = HashingHelper.VerifyPasswordHash(loginInput.Password, user.Data.PasswordHash, user.Data.PasswordSalt);

            if (!passwordCheck)
            {
                user.Data.AccessFailedCount++;
                if (user.Data.AccessFailedCount > 5)
                {
                    user.Data.LockoutEnd        = DateTimeOffset.UtcNow.AddMinutes(10);
                    user.Data.AccessFailedCount = 0;

                    await Update(user.Data);

                    return(new ErrorDataResult <AppUser>($"{Messages.TooManyIncorrectLogin}{(user.Data.LockoutEnd - DateTimeOffset.UtcNow).Value.Minutes}"));
                }
                await Update(user.Data);

                return(new ErrorDataResult <AppUser>(Messages.EmailOrPasswordWrong));
            }
            return(new SuccessDataResult <AppUser>(user.Data, Messages.Successfully));
        }
Esempio n. 2
0
        public async Task <IActionResult> Login(AppUserLoginInput loginInput)
        {
            var result = await _authService.Login(loginInput);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }
            return(Ok(result.Data));
        }
Esempio n. 3
0
        public async Task <IDataResult <AccessToken> > Login([FromBody] AppUserLoginInput loginInput)
        {
            var user = await _appUserManager.Login(loginInput);

            if (!user.Success)
            {
                return(new ErrorDataResult <AccessToken>(user.Message));
            }

            var userToken = _tokenHelper.CreateToken(user.Data);

            return(new SuccessDataResult <AccessToken>(userToken, Messages.Successfully));
        }
Esempio n. 4
0
        public CommonRtn appLogin([FromForm] AppUserLoginInput loginInput)
        {
            var exisitUser = (from user in this.sysContext.users where user.phone == loginInput.phone select user).FirstOrDefault();

            if (exisitUser != null)
            {
                // if (DESEncrypt.DecryptString(exisitUser.loginPassword) == loginInput.loginPassword)
                // {
                var loginIp = this.commonService.getRequestIp();
                exisitUser.loginNumber++;
                exisitUser.loginIP   = loginIp;
                exisitUser.mechineId = loginInput.mechineId;
                var token = this.userService.getUserToken(
                    new AppTokenOutput
                {
                    user = new User
                    {
                        id                 = exisitUser.id,
                        phone              = exisitUser.phone,
                        companyId          = exisitUser.companyId,
                        companyFrameworkId = exisitUser.companyFrameworkId
                    }
                });
                exisitUser.token = token;
                Console.WriteLine("companyFrameowrkId:" + this.userService.decodeToken(token).user.companyFrameworkId);
                Console.WriteLine("cpmid" + exisitUser.companyFrameworkId);
                Console.WriteLine("companyId" + exisitUser.companyId);
                this.sysContext.SaveChanges();

                return(CommonRtn.Success(new Dictionary <string, object>()
                {
                    { "token", token }, { "user", exisitUser }
                }, "登录成功"));
            }
            else
            {
                return(CommonRtn.Error("登录失败,用户不存在"));
            }
        }
Esempio n. 5
0
        public object appLogin([FromBody] AppUserLoginInput loginInput)
        {
            var exisitUser = (from user in this.sysContext.users where user.phone == loginInput.phone select user).FirstOrDefault();

            if (exisitUser != null)
            {
                if (DESEncrypt.DecryptString(exisitUser.loginPassword) == loginInput.loginPassword)
                {
                    var loginIp = this.commonService.getRequestIp();
                    exisitUser.loginNumber++;
                    exisitUser.loginIP   = loginIp;
                    exisitUser.mechineId = loginInput.mechineId;
                    var token = this.userService.getUserToken(new AppTokenOutput {
                        user = exisitUser
                    });
                    exisitUser.token = token;
                    this.sysContext.SaveChanges();

                    return(new CommonRtn {
                        success = true, message = "登录成功", resData = new Dictionary <string, object>()
                        {
                            { "token", token }
                        }
                    });
                }
                else
                {
                    return(CommonRtn.Error("登录失败,用户密码错误"));
                }
            }
            else
            {
                return(new CommonRtn {
                    success = false, message = "登录失败,用户不存在",
                });
            }
        }