public IActionResult Authenticate([FromBody] LoginUserModel loginUserModel, [FromServices] ILoginUserCommand loginUserCommand) { var user = loginUserCommand.Execute(loginUserModel); if (user == null) { return(BadRequest("Something went wrong")); } var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_authentication.Secret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, user.Id.ToString()) }), Expires = DateTime.UtcNow.AddDays(2), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); var tokenString = tokenHandler.WriteToken(token); // return basic user info (without password) and token to store client side return(Ok(new { User = user, Token = tokenString })); }
public IActionResult Post([FromBody] LoginUser dto) { var user = _loginUser.Execute(dto); var stringObjekat = JsonConvert.SerializeObject(user); var encrypted = _enc.EncryptString(stringObjekat); return(Ok(new { token = encrypted })); }
public string MakeToken(LoginUserDto user) { var actordb = loginUser.Execute(user); var actor = new JwtActor { Id = actordb.Id, Identity = actordb.Username, AllowedUseCases = actordb.Cases }; var issuer = "asp_api"; var secretKey = "ThisIsMyVerySecretKey"; var claims = new List <Claim> // Jti : "", { new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString(), ClaimValueTypes.String, issuer), new Claim(JwtRegisteredClaimNames.Iss, "asp_api", ClaimValueTypes.String, issuer), new Claim(JwtRegisteredClaimNames.Iat, DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString(), ClaimValueTypes.Integer64, issuer), new Claim("UserId", actor.Id.ToString(), ClaimValueTypes.String, issuer), new Claim("ActorData", JsonConvert.SerializeObject(actor), ClaimValueTypes.String, issuer) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)); var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var now = DateTime.UtcNow; var token = new JwtSecurityToken( issuer: issuer, audience: "Any", claims: claims, notBefore: now, expires: now.AddSeconds(180), signingCredentials: credentials); return(new JwtSecurityTokenHandler().WriteToken(token)); }
public IActionResult Login(LoginUserDto user) { try { var result = loginUser.Execute(user); if (result != null) { HttpContext.Session.Set("User", result); ViewBag.User = HttpContext.Session.Get <ShowUserDto>("User"); TempData["success"] = "Successfully logged in."; return(RedirectToAction("Index", "Home")); } else { TempData["error"] = "Oopps...Somethng went wrong, please try again."; return(RedirectToAction("Index", "Home")); } } catch (Exception e) { TempData["error"] = "Email and/or password incorrect; " + e.Message; } return(View("Index")); }