Exemple #1
0
        public async Task <IActionResult> Login(AkunLoginViewModel akunUser, string returnUrl)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                var isvalid = unitofwork.AkunUser.ValidateUserLogin(akunUser);
                if (isvalid)
                {
                    var claims = new List <Claim>()
                    {
                        new Claim("user", akunUser.Email),
                        new Claim("role", "user")
                    };
                    var claimIds        = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme, "user", "role");
                    var claimsprincipal = new ClaimsPrincipal(claimIds);
                    await HttpContext.SignInAsync(claimsprincipal);

                    if (Url.IsLocalUrl(returnUrl))
                    {
                        return(Redirect(returnUrl));
                    }
                    else
                    {
                        return(Redirect("/"));
                    }
                }
                else
                {
                    return(View());
                }
            }
            return(BadRequest(ModelState));
        }
Exemple #2
0
        public bool ValidateUserLogin(AkunLoginViewModel loginViewModel)
        {
            var data = this.Db.AkunUser.Where(d => d.Email == loginViewModel.Email && d.Password == d.Password);

            if (data.Any())
            {
                return(true);
            }
            return(false);
        }
Exemple #3
0
        public async Task <IActionResult> TokenAsync([FromBody] AkunLoginViewModel inputModel)
        {
            if (ModelState.IsValid)
            {
                var valid = unitofwork.AkunUser.ValidateUserLogin(inputModel);
                if (!valid)
                {
                    return(Unauthorized());
                }


                var claims = new List <Claim>()
                {
                    new Claim(ClaimTypes.NameIdentifier, inputModel.Email),
                    new Claim(JwtRegisteredClaimNames.Sub, inputModel.Email),
                    new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
                };

                var cls             = new ClaimsIdentity(claims, JwtBearerDefaults.AuthenticationScheme);
                var claimsPrincipal = new ClaimsPrincipal(cls);
                await HttpContext.SignInAsync(claimsPrincipal);


                var credentials = new SigningCredentials(JwtSecurityKey.Create(),
                                                         SecurityAlgorithms.HmacSha256);

                var token = new JwtSecurityToken(JwtSecurityKey.Issuer,
                                                 JwtSecurityKey.Audience,
                                                 claimsPrincipal.Claims, DateTime.Now, DateTime.Now.AddDays(1),
                                                 credentials);

                return(Ok(new
                {
                    token = new JwtSecurityTokenHandler().WriteToken(token),
                    expiration = token.ValidTo
                }));
            }
            return(BadRequest(inputModel));
        }