Example #1
0
        public JWTAndRefreshToken Login(string login, string password)
        {
            var person = _personRepository.GetPersonByLoginAndPassword(login, password);

            if (person != null)
            {
                ClaimsIdentity identity = GetIdentity(login, password);
                if (identity == null)
                {
                    jwt = null;
                    return(null);
                }
                DateTime timeNow = DateTime.UtcNow;
                jwt = new JwtSecurityToken(
                    issuer: JWTOptions.ISSUER,
                    audience: JWTOptions.AUDIENCE,
                    claims: identity.Claims,
                    notBefore: timeNow,
                    expires: timeNow.AddMinutes(1),
                    signingCredentials: new SigningCredentials(
                        JWTOptions.GetSymmetricSecurityKey(), SecurityAlgorithms.HmacSha256));

                string accessToken  = new JwtSecurityTokenHandler().WriteToken(jwt);
                string refreshToken = Guid.NewGuid().ToString();
                person.RefreshToken = refreshToken;
                _personRepository.Update(person);

                JWTAndRefreshToken JWTAndRefreshToken = new JWTAndRefreshToken {
                    AccessToken = accessToken, RefreshToken = refreshToken
                };
                return(JWTAndRefreshToken);
            }
            return(null);
        }
        public JWTAndRefreshToken RefreshToken(string refreshToken)
        {
            Person person = _personService.GetPersonByRefreshToken(refreshToken);

            if (person == null)
            {
                return(null);
            }
            JWTAndRefreshToken jWTAndRefreshToken = _jWTService.Login(person.Login, person.Password);

            return(jWTAndRefreshToken);
        }
        public JWTAndRefreshToken Login(string login, string password)
        {
            Person person = _personService.GetPersonByLoginAndPassword(login, password);

            if (person == null)
            {
                return(null);
            }
            JWTAndRefreshToken jWTAndRefreshToken = _jWTService.Login(person.Login, person.Password);

            return(jWTAndRefreshToken);
        }