Exemplo n.º 1
0
        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
            }));
        }
Exemplo n.º 2
0
        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 }));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
 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"));
 }