Пример #1
0
        public async Task <IServiceDataResult <ApplicationUsers> > LoginWithPassword(LoginEmailAndPasswordDto loginEmailAndPassword)
        {
            var user = await new RestClient <ApplicationUsers, ApplicationUsers>($"{ UserAPI.USEREXISTS}?email={loginEmailAndPassword.Email}").GetAsync();

            if (user != null)
            {
                if (await new RestClient <ApplicationUsers, bool>(UserAPI.EMAILCONFIRMED).PostAsync(user))
                {
                    var userToCheck = await new RestClient <CheckPasswordDto, bool>($"{UserAPI.CHECKPASSWORD}")
                                      .PostAsync(new CheckPasswordDto {
                        ApplicationUsers = user, Password = loginEmailAndPassword.Password
                    });

                    if (!userToCheck)
                    {
                        return(new ErrorDataResult <ApplicationUsers>(GlobalErrors.NotFound, "User's password wrong..!"));
                    }
                    LoggerService.InfoAsync(new FileLogger(message: "User is logged in.", data: loginEmailAndPassword));
                    return(new SuccessDataResult <ApplicationUsers>(user));
                }
                else
                {
                    LoggerService.WarnAsync(new DatabaseLogger(message: "User's email is not verified..!", data: user));
                    return(new ErrorDataResult <ApplicationUsers>(user, GlobalErrors.EmailIsNotVerified, "User's email is not verified..!"));
                }
            }

            return(new ErrorDataResult <ApplicationUsers>(GlobalErrors.NotFound, "User does not exists..!"));
        }
Пример #2
0
        public async Task <IActionResult> Login(LoginEmailAndPasswordDto loginEmailAndPasswordDto)
        {
            var userToLogin = await _authService.LoginWithPassword(loginEmailAndPasswordDto);

            if (!userToLogin.Success)
            {
                return(Ok(userToLogin));
            }

            var result = await _authService.CreateToken(userToLogin.Data).ConfigureAwait(true);

            return(Ok(result));
        }