示例#1
0
        public object Refresh(RefreshCredentials model)
        {
            RefreshTokenData _rtd = null;

            var storedToken = _dc.GetString(model.RefreshToken);

            if (!string.IsNullOrEmpty(storedToken) && !string.IsNullOrWhiteSpace(storedToken))
            {
                _rtd = JsonConvert.DeserializeObject <RefreshTokenData> (storedToken);
            }

            var isValid = false;

            if (_rtd != null)
            {
                isValid = (model.UserId == _rtd.UserID && model.RefreshToken == _rtd.RefreshToken);
            }

            if (isValid)
            {
                _dc.Remove(model.RefreshToken);
                return(New(model.UserId));
            }

            return(null);
        }
        public IActionResult RefreshToken(RefreshCredentials model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var result = _service.Refresh(model);

            if (result == null)
            {
                return(BadRequest(new string[] { "Error: Invalid token." }));
            }

            return(Ok(result));
        }