Beispiel #1
0
            public async Task <UserDto> Handle(Command request, CancellationToken cancellationToken)
            {
                var refreshToken = _httpContextAccessor.HttpContext.Request.Cookies["refreshToken"];

                if (refreshToken == null)
                {
                    throw new RestException(HttpStatusCode.Unauthorized, new { User = "******" });
                }

                var user = await _context.Users.SingleOrDefaultAsync(u => u.Tokens.Any(t => t.RefreshToken == refreshToken));

                if (user == null)
                {
                    throw new RestException(HttpStatusCode.NotFound, new { User = "******" });
                }

                var userClaims = await _userManager.GetClaimsAsync(user);

                var refreshTokenDto = await _jwtGenerator.RefreshTokenAsync(user, refreshToken, userClaims.ToList());

                return(new UserDto
                {
                    DisplayName = user.DisplayName,
                    Token = refreshTokenDto.JWT,
                    UserName = user.UserName,
                    Role = user.Role,
                    //ProfilePhotoName = user.CreatedAttachments?.FirstOrDefault(x => x.Type == AttachmentTypeEnum.Photo && x.IsMain)?.FileName
                });
            }