Ejemplo n.º 1
0
        // base methods

        public async Task <LoggedTokensDto> RefreshToken(string token, string uuid)
        {
            JwtSecurityToken   to = ValidateRefreshToken(token);
            ActiveRefreshToken activeJwtRefreshToken = _activeRefreshTokensGR.GetAll((x) => x.Jti == to.Id).FirstOrDefault();

            if (activeJwtRefreshToken == null)
            {
                throw new ClientException("inc-refresh-token");
            }

            if (activeJwtRefreshToken.UUID != uuid)
            {
                throw new ClientException("inc-uuid");
            }

            await _activeRefreshTokensGR.DeleteAsync(activeJwtRefreshToken);

            var ttoken = await Login(activeJwtRefreshToken.UserId, activeJwtRefreshToken.UUID);

            _userConnectionService.UpdateUserToken(to.Id, ttoken.Token);
            return(ttoken);
        }