Exemple #1
0
        public async Task <IActionResult> Authenticate([FromBody] AuthenticationVm model)
        {
            var response = await _userService.Authentication(model, ipAddress());

            setTokenCookie(response.RefreshToken);

            return(Ok(response));
        }
Exemple #2
0
 public AuthenticationWindow(JirnalCore jirnalCore)
 {
     jirnalCore_ = jirnalCore;
     authVm_     = new AuthenticationVm(jirnalCore);
     DataContext = authVm_;
     InitializeComponent();
     Loaded += OnLoaded_;
     Browser.DocumentCompleted += OnDocumentLoaded_;
 }
        public async Task <AuthenticateResponseVm> Authentication(AuthenticationVm model, string IpAddress)
        {
            var user = await _userManager.FindByNameAsync(model.Email);

            if (user == null)
            {
                throw new MyException(ApiResponseDescription.INCORECT_EMAIL);
            }

            if (await _userManager.CheckPasswordAsync(user, model.Password))
            {
                var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.isPersistent, lockoutOnFailure : false);

                if (result == SignInResult.NotAllowed)
                {
                    throw new MyUnauthorizedException(ApiResponseDescription.EMAIL_ADDRESS_IS_NOT_CONFIRMED);
                }

                var jwtToken     = generateJwtToken(user);
                var refreshToken = generateRefreshToken(IpAddress);

                user.RefreshTokens.Add(refreshToken);

                _unitOfWork.userRepository.Update(user);
                await _unitOfWork.CompleteAsync();

                return(new AuthenticateResponseVm
                {
                    JwtToken = jwtToken,
                    RefreshToken = refreshToken.Token,
                    Id = user.Id,
                    FirstName = user.FirstName,
                    LastName = user.LastName,
                    Email = user.Email,
                    Alias = user.Alias
                });
            }
            else
            {
                throw new MyException(ApiResponseDescription.INCORECT_PAASWORD);
            }
        }