Exemplo n.º 1
0
        private async Task <RefreshToken> CreateInternalAsync(User user)
        {
            var tokenId     = Guid.NewGuid();
            var userClaims  = user.ExtractUserClaims();
            var jwtToken    = CreateJwtToken(userClaims, tokenId);
            var jwtTokenStr = _jwtSecurityTokenHandler.WriteToken(jwtToken);

            var refreshToken = new RefreshToken(user.Id, jwtTokenStr);

            refreshToken = refreshToken.Bind(x => x.Id, tokenId);

            _refreshTokenRepository.Add(refreshToken);
            await _refreshTokenRepository.UnitOfWork.SaveChangesAndDispatchDomainEventsAsync();

            return(refreshToken);
        }