Exemplo n.º 1
0
        public string EncodeToken(UserSimplified user)
        {
            JwtSecurityToken jwtSecurityToken = new JwtSecurityToken(
                Header,
                new JwtPayload(
                    issuer: null,
                    audience: null,
                    claims: new Claim[]
            {
                new Claim("Id", user.Id.ToString()),
                new Claim("LastName", user.LastName),
                new Claim("FirstName", user.FirstName),
                new Claim("Birthdate", user.Birthdate.ToString()),
                new Claim("Login", user.Login),
                new Claim("Gender", user.Gender),
                new Claim("StatusCode", user.StatusCode.ToString()),
            },
                    notBefore: DateTime.Now,
                    expires: DateTime.Now.AddHours(5)
                    )
                );



            return(Handler.WriteToken(jwtSecurityToken));
        }
Exemplo n.º 2
0
        internal static IEnumerable <Claim> ToCLaims(this UserSimplified user)
        {
            yield return(new Claim("Id", user.Id.ToString()));

            yield return(new Claim("LastName", user.LastName));

            yield return(new Claim("FirstName", user.FirstName));

            yield return(new Claim("Birthdate", user.Birthdate.ToString()));

            yield return(new Claim("Login", user.Login));

            yield return(new Claim("Gender", user.Gender));

            yield return(new Claim("StatusCode", user.StatusCode.ToString()));

            //yield return new Claim(ClaimTypes.Role, user.StatusName.ToString());
            yield return(new Claim("lastResetPwd", user.lastResetPwd.ToString()));
        }
        /*POSTMAN OK*/
        public IActionResult Login([FromBody] FormLogin entity)
        {
            //string privateKey = _key.PrivateKey;
            //entity.Password = _decrypting.Decrypt(entity.Password, privateKey);
            UserSimplified user = new UserSimplified();

            try
            {
                user = _authRepo.Login(entity.Login, entity.Password)?.DalToSimplifiedUserApi();
            }
            catch (Exception e)
            {
                if (e.Message.Contains("LoginNotFound"))
                {
                    return(Problem("Login doesnt exist", statusCode: (int)HttpStatusCode.NotFound));
                }
                if (e.Message.Contains("PasswordDoesntMatch"))
                {
                    return(Problem("Password doesnt match with the current login", statusCode: (int)HttpStatusCode.NotFound));
                }
                else
                {
                    return(Problem("?", statusCode: (int)HttpStatusCode.NotFound));
                }
            }
            if (!(user is null))
            {
                user.Token = _token.EncodeToken(user, (u) => u.ToCLaims());
                if (string.IsNullOrWhiteSpace(user.Token))
                {
                    return(Problem("Invalid token !", statusCode: (int)HttpStatusCode.MethodNotAllowed));
                }
                else
                {
                    return(Ok(user));
                }
            }
Exemplo n.º 4
0
        public UserSimplified DecodeToken(string token)
        {
            UserSimplified user = null;

            token = token.Replace("Bearer ", "");
            JwtSecurityToken jwtSecurityToken = Handler.ReadJwtToken(token);

            if (jwtSecurityToken.ValidFrom <= DateTime.Now && jwtSecurityToken.ValidTo >= DateTime.Now)
            {
                JwtPayload payload = jwtSecurityToken.Payload;
                string     test    = Handler.WriteToken(new JwtSecurityToken(Header, payload));

                if (token == test)
                {
                    payload.TryGetValue("Id", out object id);
                    payload.TryGetValue("LastName", out object lastName);
                    payload.TryGetValue("FirstName", out object firstName);
                    payload.TryGetValue("Birthdate", out object Birthdate);
                    payload.TryGetValue("Login", out object login);
                    payload.TryGetValue("Gender", out object gender);
                    payload.TryGetValue("StatusCode", out object statusCode);

                    user = new UserSimplified()
                    {
                        Id         = int.Parse((string)id),
                        LastName   = (string)lastName,
                        FirstName  = (string)firstName,
                        Birthdate  = (DateTime)Birthdate,
                        Login      = (string)login,
                        Gender     = (string)gender,
                        StatusCode = int.Parse((string)statusCode)
                    };
                }
            }
            return(user);
        }