code: private Response process(String accessToken)
      {
          // Call Authlete's /api/auth/userinfo API.
          UserInfoResponse response = getApiCaller().callUserInfo(accessToken);
  
          // 'action' in the response denotes the next action which
          // this service implementation should take.
          Action action = response.getAction();
  
          // The content of the response to the client application.
          String content = response.getResponseContent();
  
          // Dispatch according to the action.
          switch (action)
          {
              case INTERNAL_SERVER_ERROR:
                  // 500 Internal Server Error
                  return ResponseUtil.bearerError(Status.INTERNAL_SERVER_ERROR, content);
  
              case BAD_REQUEST:
                  // 400 Bad Request
                  return ResponseUtil.bearerError(Status.BAD_REQUEST, content);
  
              case UNAUTHORIZED:
                  // 401 Unauthorized
                  return ResponseUtil.bearerError(Status.UNAUTHORIZED, content);
  
              case FORBIDDEN:
                  // 403 Forbidden
                  return ResponseUtil.bearerError(Status.FORBIDDEN, content);
  
              case OK:
                  // Return the user information.
                  return getUserInfo(response);
  
              default:
                  // This never happens.
                  throw getApiCaller().unknownAction("/api/auth/userinfo", action);
          }
      }
docs: Process the userinfo request with the access token.