Esempio n. 1
0
        public async Task <IActionResult> Login(LoginModel model)
        {
            ApplicationUser user = await userManager.FindByEmailAsync(model.Email);

            var result = await signInManager.PasswordSignInAsync(user, model.Password, true, false);

            if (result.Succeeded)
            {
                var jwtResponse = jwtAuthenticator.GenerateJwtToken(user);
                return(Ok(jwtResponse));
            }


            return(BadRequest("Invalid Auth Credentials"));
        }
Esempio n. 2
0
        public async Task <LoginOutputDto> PostAsync(LoginInputDto input)
        {
            var result = await _signInManager.PasswordSignInAsync(input.Name, input.Password, false, true);

            if (!result.Succeeded)
            {
                throw new BusinessException("Login Faild");
            }

            var user = await _userManager.FindByNameAsync(input.Name);

            if (user != null)
            {
                if (user == null)
                {
                    throw new BusinessException("Login Faild");
                }
                var roles = await _userManager.GetRolesAsync(user);

                if (roles == null || roles.Count == 0)
                {
                    throw new BusinessException("Login Faild");
                }
                var token          = GenerateJwt(user, roles.ToList());
                var loginOutputDto = ObjectMapper.Map <IdentityUser, LoginOutputDto>(user);
                loginOutputDto.Token      = token;
                loginOutputDto.Expiration = DateTime.Now.AddHours(_jwtOptions.ExpirationTime);
                return(loginOutputDto);
            }
            throw new BusinessException("Login Faild");
        }
        public async System.Threading.Tasks.Task <Microsoft.AspNetCore.Mvc.IActionResult> Login(Models.ViewModels.LoginModel accountViewModel)
        {
            if (ModelState.IsValid)
            {
                Microsoft.AspNetCore.Identity.IdentityUser user = await userManager.FindByNameAsync(accountViewModel.Name);

                if (user != null)
                {
                    await signInManager.SignOutAsync();

                    if ((await signInManager.PasswordSignInAsync(user, accountViewModel.Password, false, false)).Succeeded)
                    {
                        return(Redirect(accountViewModel?.ReturnUrl ?? "/Admin/Index"));
                    }
                }
            }
            ModelState.AddModelError("", "Invalid name or password");
            return(View(accountViewModel));
        }
        public async Task <ApiResult> PostAsync(LoginInputDto input)
        {
            var result = await _signInManager.PasswordSignInAsync(input.Name, input.Password, false, true);

            if (!result.Succeeded)
            {
                return(ApiResult.Error());
            }

            var user = await _userManager.FindByNameAsync(input.Name);

            if (user == null)
            {
                user = await _userManager.FindByEmailAsync(input.Name);

                if (user == null)
                {
                    return(ApiResult.Error());
                }
            }

            var roles = await _userManager.GetRolesAsync(user);

            if (roles == null || roles.Count == 0)
            {
                return(ApiResult.Error());
            }


            var token          = GenerateJwt(user, roles.ToList());
            var loginOutputDto = ObjectMapper.Map <IdentityUser, LoginOutputDto>(user);

            loginOutputDto.Token      = token;
            loginOutputDto.Expiration = DateTime.Now.AddHours(_jwtOptions.ExpirationTime);
            return(ApiResult.Ok(data: loginOutputDto));
        }