Esempio n. 1
0
        private async Task <ClaimsIdentity> GetClaimsIdentity(CredentialsParams credentials)
        {
            if (string.IsNullOrEmpty(credentials.Email) || string.IsNullOrEmpty(credentials.Password))
            {
                return(await Task.FromResult <ClaimsIdentity>(null));
            }

            // get the user to verify
            var userToVerify = _usersManager.Users.FirstOrDefault(u => u.Email == credentials.Email);

            if (userToVerify == null)
            {
                return(await Task.FromResult <ClaimsIdentity>(null));
            }

            // check the credentials
            if (await _usersManager.CheckPasswordAsync(userToVerify, credentials.Password))
            {
                credentials.UserName = userToVerify.UserName;
                return(await Task.FromResult(
                           _jwtFactory.GenerateClaimsIdentity(userToVerify.Email, userToVerify.Id)));
            }

            // Credentials are invalid, or account doesn't exist
            return(await Task.FromResult <ClaimsIdentity>(null));
        }
Esempio n. 2
0
        public async Task <IActionResult> Register([FromBody] CredentialsParams model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            await _accountsManager.CreateUserAsync(model);

            return(Ok());
        }
Esempio n. 3
0
        public async Task <string> GetUserTokenAsync(CredentialsParams credentials)
        {
            var identity = await GetClaimsIdentity(credentials);

            if (identity == null)
            {
                throw new AuthenticationException("Invalid username or password");
            }

            return(await GenerateJwt(identity, _jwtFactory, credentials.UserName, _jwtOptions));
        }
        public async Task <bool?> Authenticate(CredentialsParams credentials)
        {
            var user = await _context.Pilots
                       .FirstOrDefaultAsync(p => p.FirstName == credentials.FirstName && p.LastName == credentials.LastName);

            if (user == null)
            {
                return(null);
            }

            return(user.PhoneNumber == credentials.PhoneNumber);
        }
Esempio n. 5
0
        public async Task CreateUserAsync(CredentialsParams credentialsParams)
        {
            var userIdentity = _mapper.Map <UserEntity>(credentialsParams);

            var result = await _usersManager.CreateAsync(userIdentity, credentialsParams.Password);

            if (!result.Succeeded)
            {
                throw new System.Exception("Cannot add user");
            }

            await _dbContext.Users.AddAsync(userIdentity);

            await _dbContext.SaveChangesAsync();
        }
Esempio n. 6
0
        public async Task <IActionResult> Login([FromBody] CredentialsParams credentials)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var token = await _accountsManager.GetUserTokenAsync(credentials);

                var deserialized = Newtonsoft.Json.JsonConvert.DeserializeObject(token);
                return(new OkObjectResult(deserialized));
            }
            catch (AuthenticationException)
            {
                return(Unauthorized());
            }
        }
        public async Task <ActionResult <TokenDto> > GetToken([FromBody] CredentialsParams credentials)
        {
            //Authenticate

            var isKnow = await _authService.Authenticate(credentials);

            if (isKnow == null)
            {
                return(NotFound("User not found"));
            }
            if ((bool)!isKnow)
            {
                return(Unauthorized("Wrong user"));
            }

            var myTokenDto = _authService.GenerateJwt(credentials.FirstName, credentials.LastName, _appSettings.Secret);

            if (myTokenDto.Token == null)
            {
                return(Unauthorized("Something went wrong"));
            }

            return(Ok(myTokenDto));
        }