Ejemplo n.º 1
0
        public async Task <IActionResult> Login(UserModelForLogin userModelForLogin, string returnUrl = "/")
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.FindByNameAsync(userModelForLogin.UserName);

                if (user != null)
                {
                    var result = await signInManager
                                 .CheckPasswordSignInAsync(user, userModelForLogin.Password, true);

                    if (result.Succeeded)
                    {
                        await signInManager.SignInAsync(user, userModelForLogin.RememberMe);

                        return(LocalRedirect(returnUrl));
                    }

                    if (result.IsLockedOut)
                    {
                        ModelState.AddModelError("", "Çok fazla şifre denemesi yaptınız. Lütfen 1 dakika bekleyiniz.");
                        return(View(userModelForLogin));
                    }
                }

                ModelState.AddModelError("", "Kullanıcı adı veya Şifre bilgileri yanlış");
            }

            return(View(userModelForLogin));
        }
        public async Task <IActionResult> Login([FromBody] UserModelForLogin userForLogin)
        {
            var user = await _authRepository.Login(userForLogin.UserName, userForLogin.Password);

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

            var tokenHandler = new JwtSecurityTokenHandler();
            var key          = Encoding.ASCII.GetBytes(_configuration.GetSection("AppSettings:Token").Value);

            var tokenDescriptor = new SecurityTokenDescriptor()
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                    new Claim(ClaimTypes.Name, user.UserName)
                }),
                Expires            = DateTime.Now.AddMinutes(10),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key),
                                                            SecurityAlgorithms.HmacSha512Signature)
            };

            var token       = tokenHandler.CreateToken(tokenDescriptor);
            var tokenString = tokenHandler.WriteToken(token);

            return(Ok(tokenString));
        }