public Task <AuthResult> Handle(LoginCommand request, CancellationToken cancellationToken) { var user = _userRepository.GetUser(new PrzedsiebiorstwoSpecification(request.Email), request.PrzedsiebiorstwoId); if (user != null && user.ValidatePassword(request.Password)) { var refreshToken = _tokenStore.GetRefreshToken(user.Id); var authResult = new AuthResult { Token = new JwtSecurityTokenHandler().WriteToken(_tokenManager.CreateJWTToken(user.Claims)), RefreshToken = refreshToken.Token, ExpireAt = refreshToken.ExpireTimestamp }; return(Task.FromResult(authResult)); } else { return(Task.FromResult((AuthResult)null)); } }
public Task <AuthResult> Handle(RefreshTokenCommand request, CancellationToken cancellationToken) { if (!_tokenManager.ValidateToken(request.AuthResult.Token, out var userId_przedsiebiorstwoId)) { return(Task.FromResult((AuthResult)null)); } if (_tokenStore.ValidateToken(userId_przedsiebiorstwoId.Item1.Value, request.AuthResult.RefreshToken)) { var refreshToken = _tokenStore.GetRefreshToken(userId_przedsiebiorstwoId.Item1.Value); var user = _userRepository.GetUser(new IdSpecification <User, Guid>(userId_przedsiebiorstwoId.Item1.Value), userId_przedsiebiorstwoId.Item2.Value); var authResult = new AuthResult { Token = new JwtSecurityTokenHandler().WriteToken(_tokenManager.CreateJWTToken(user.Claims)), RefreshToken = refreshToken.Token, ExpireAt = refreshToken.ExpireTimestamp }; return(Task.FromResult(authResult)); } else { return(Task.FromResult((AuthResult)null)); } }