docs: def handleCheckIDRequest(request, openid_request):
      """
      Handle checkid_* requests.  Get input from the user to find out
      whether she trusts the RP involved.  Possibly, get intput about
      what Simple Registration information, if any, to send in the
      response.
      """
      # If the request was an IDP-driven identifier selection request
      # (i.e., the IDP URL was entered at the RP), then return the
      # default identity URL for this server. In a full-featured
      # provider, there could be interaction with the user to determine
      # what URL should be sent.
      if not openid_request.idSelect():
  
          id_url = getViewURL(request, idPage)
  
          # Confirm that this server can actually vouch for that
          # identifier
          if id_url != openid_request.identity:
              # Return an error response
              error_response = ProtocolError(
                  openid_request.message,
                  "This server cannot verify the URL %r" %
                  (openid_request.identity,))
  
              return displayResponse(request, error_response)
  
      if openid_request.immediate:
          # Always respond with 'cancel' to immediate mode requests
          # because we don't track information about a logged-in user.
          # If we did, then the answer would depend on whether that user
          # had trusted the request's trust root and whether the user is
          # even logged in.
          openid_response = openid_request.answer(False)
          return displayResponse(request, openid_response)
      else:
          # Store the incoming request object in the session so we can
          # get to it later.
          setRequest(request, openid_request)
          return showDecidePage(request, openid_request)