Ejemplo n.º 1
0
        public async Task <SessionDto> CreateSession(User user, string ipAddress = null)
        {
            user = await _userManager.FindByIdAsync(user.Id);

            var roles = (await _userManager.GetRolesAsync(user)).ToList();

            Logger.LogInformation("Creating session for user {UserId}", user.Id);

            var refreshToken = await RefreshTokensService.CreateRefreshToken(user, ipAddress);


            var session = new SessionDto
            {
                Profile = new UserProfileDto
                {
                    Id       = user.Id,
                    Username = user.UserName,
                    Roles    = roles,
                    Fullname = user.FullName,
                },
                AccessToken  = _jwtFactory.GenerateToken(user.Id, user.UserName, roles, _jwtOptions.CalcExpiration()),
                RefreshToken = TokenDto.FromRefreshTokenEntity(refreshToken)
            };

            return(session);
        }