示例#1
0
        public async Task <IActionResult> Login(LoginUserDTO model)
        {
            var userfromDb = await _userManager.FindByNameAsync(model.Username);

            if (userfromDb == null)
            {
                return(BadRequest());
            }


            var result = await _signInManager.CheckPasswordSignInAsync(userfromDb, model.Password, false);

            if (!result.Succeeded)
            {
                return(BadRequest());
            }

            var roles = await _userManager.GetRolesAsync(userfromDb);

            IList <Claim> claims = await _userManager.GetClaimsAsync(userfromDb);

            return(Ok(new
            {
                result = result,
                username = userfromDb.UserName,
                email = userfromDb.Email,
                token = _jwtToken.GenerateToken(userfromDb, roles, claims)
            }));
        }
示例#2
0
        public async Task <IActionResult> Login(LoginModel loginModel)
        {
            var userInDb = await _userManager.FindByNameAsync(loginModel.Username);

            if (userInDb == null)
            {
                return(BadRequest());
            }

            // the false in the argument is used to prevent the user from being locked out after several failed attempts
            var result = await _signInManager.CheckPasswordSignInAsync(userInDb, loginModel.Password, false);

            if (!result.Succeeded)
            {
                return(BadRequest());
            }
            var roles = await _userManager.GetRolesAsync(userInDb);

            var claims = await _userManager.GetClaimsAsync(userInDb);


            return(Ok(new
            {
                result = result,
                username = userInDb.UserName,
                email = userInDb.Email,
                token = _jWTTokenGenerator.GenerateToken(userInDb, roles, claims)
            }));
        }
        public async Task <IActionResult> LoginAsync(LoginAPIModel model)
        {
            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user is null)
            {
                return(BadRequest("Incorrect User Name or Password"));
            }
            if (!user.EmailConfirmed)
            {
                return(BadRequest("Please confirm your email"));
            }
            var result = await _signInManager.CheckPasswordSignInAsync(user, model.Password, false);

            if (!result.Succeeded)
            {
                return(BadRequest("Incorrect User Name or Password"));
            }
            var roles = await _userManager.GetRolesAsync(user);

            IList <Claim> claims = await _userManager.GetClaimsAsync(user);

            var token = _jwtToken.GenerateToken(user, roles, claims);

            return(Ok(new
            {
                result = result,
                username = user.Email,
                email = user.Email,
                firstName = user.FirstName.ToString(),
                lastName = user.LastName.ToString(),
                token = token,
                userid = user.Id
            }));
        }
示例#4
0
        public async Task <IActionResult> Authenticate([FromBody] LoginModel login)
        {
            var user = await userManager.FindByNameAsync(login.UserName);

            if (user != null && await userManager.CheckPasswordAsync(user, login.Password))
            {
                var claims = await userManager.GetClaimsAsync(user);

                var token = tokenGenerator.GenerateToken(claims);
                return(Ok(new AuthenticationResponse()
                {
                    Token = token, UserName = login.UserName
                }));
            }
            return(BadRequest());
        }
        public async Task <IActionResult> Login(LoginModel model)
        {
            var userFromDb = await _userManager.FindByNameAsync(model.Username);

            if (userFromDb == null)
            {
                return(BadRequest(new
                {
                    message = "Unable to login",
                    status = 400
                }));
            }
            var result = await _signInManager.CheckPasswordSignInAsync(userFromDb, model.Password, false);

            if (!result.Succeeded)
            {
                return(BadRequest(new
                {
                    message = "Unable to login",
                    status = 400
                }));
            }

            var subscription = await _subscriberRepository.GetByCustomerIdAsync(userFromDb.CustomerId);

            DateTime expDate;
            var      isSubscriber = false;

            if (subscription != null && subscription.Status == "active")
            {
                isSubscriber = true;
                expDate      = subscription.CurrentPeriodEnd;
            }
            else
            {
                expDate = DateTime.Now.AddDays(7);
            }

            return(Ok(new
            {
                token = _jwtToken.GenerateToken(userFromDb, expDate, isSubscriber),
                status = 200
            }));
        }