docs: def digest_auth(
      qop=None, user="user", passwd="passwd", algorithm="MD5", stale_after="never"
  ):
      """Prompts the user for authorization using Digest Auth + Algorithm.
      allow settings the stale_after argument.
      ---
      tags:
        - Auth
      parameters:
        - in: path
          name: qop
          type: string
          description: auth or auth-int
        - in: path
          name: user
          type: string
        - in: path
          name: passwd
          type: string
        - in: path
          name: algorithm
          type: string
          description: MD5, SHA-256, SHA-512
          default: MD5
        - in: path
          name: stale_after
          type: string
          default: never
      produces:
        - application/json
      responses:
        200:
          description: Sucessful authentication.
        401:
          description: Unsuccessful authentication.
      """
      require_cookie_handling = request.args.get("require-cookie", "").lower() in (
          "1",
          "t",
          "true",
      )
      if algorithm not in ("MD5", "SHA-256", "SHA-512"):
          algorithm = "MD5"
  
      if qop not in ("auth", "auth-int"):
          qop = None
  
      authorization = request.headers.get("Authorization")
      credentials = None
      if authorization:
          credentials = parse_authorization_header(authorization)
  
      if (
          not authorization
          or not credentials
          or credentials.type.lower() != "digest"
          or (require_cookie_handling and "Cookie" not in request.headers)
      ):
          response = digest_challenge_response(app, qop, algorithm)
          response.set_cookie("stale_after", value=stale_after)
          response.set_cookie("fake", value="fake_value")
          return response
  
      if require_cookie_handling and request.cookies.get("fake") != "fake_value":
          response = jsonify({"errors": ["missing cookie set on challenge"]})
          response.set_cookie("fake", value="fake_value")
          response.status_code = 403
          return response
  
      current_nonce = credentials.get("nonce")
  
      stale_after_value = None
      if "stale_after" in request.cookies:
          stale_after_value = request.cookies.get("stale_after")
  
      if (
          "last_nonce" in request.cookies
          and current_nonce == request.cookies.get("last_nonce")
          or stale_after_value == "0"
      ):
          response = digest_challenge_response(app, qop, algorithm, True)
          response.set_cookie("stale_after", value=stale_after)
          response.set_cookie("last_nonce", value=current_nonce)
          response.set_cookie("fake", value="fake_value")
          return response
  
      if not check_digest_auth(user, passwd):
          response = digest_challenge_response(app, qop, algorithm, False)
          response.set_cookie("stale_after", value=stale_after)
          response.set_cookie("last_nonce", value=current_nonce)
          response.set_cookie("fake", value="fake_value")
          return response
  
      response = jsonify(authenticated=True, user=user)
      response.set_cookie("fake", value="fake_value")
      if stale_after_value:
          response.set_cookie(
              "stale_after", value=next_stale_after_value(stale_after_value)
          )
  
      return response