Support » Allgemeine Fragen » Rest-API Problem

  • Hallo,

    bei mir ist die Rest-API auf angemeldete Benutzer begrenzt (functions.php)

     
    add_filter( 'rest_authentication_errors', function( $result ) {
    // If a previous authentication check was applied,
    // pass that result along without modification.
    if ( true === $result || is_wp_error( $result ) ) {
    return $result; }
    
       // No authentication has been performed yet.
       // Return an error if user is not logged in.
       if ( ! is_user_logged_in() ) {
         return new WP_Error(
           'rest_not_logged_in',
           __( 'You are not currently logged in.' ),
           array( 'status' => 401 )
         );
       }
    
       // Our custom authentication check should have no effect
       // on logged-in requests
       return $result;
    });
    

    Bisher hatte ich damit auch keine Probeme, jetzt sehe ich allerdings folgenden Fehler im Log

    149.232.xxx.0 – – [02/Aug/2023:17:18:47 +0200] „GET /wp-json/ HTTP/1.1“ 403 210 „-“ „WordPress/6.2.2; https://example.org“

    Bei dieser IP handelt es sich um die IP des eigenen Webservers. Die Fehlermeldungen kommen erst seit kurzem, hängt „vermutlich“ mit einem Update von Plugins zusammen … da es bei der Arbeit dieser auftritt. Das prüfe ich noch …

    Kann ich den obrigen Code in der functions.php erweitern um einen Aufruf der Rest-API von der festen Webserver-IP zusätzlich zu den angemeldeten Usern zu erlauben?

    Mit freundlichen Grüßen – Jan

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Hallo,
    sorry, aber das sind schlicht zu wenige Angaben: Welche functions.php genau meinst du? – Ist das eine functions.php im Core oder in deinem Child Theme? – Ohne Websitebericht können wir dir da wohl kaum helfen.

    Lies doch bitte mal: Bevor du ein neues Thema (Thread) erstellst.

    Du findest unter Werkzeuge > Websitezustand > Info einen Bericht zur Website. Warte bitte einen Moment bis die Ladeanzeige ganz oben abgeschlossen ist und kopiere dann per Button den Website-Bericht in deine Zwischenablage. Über den Button „Bericht in die Zwischenablage kopieren“ kannst du den Bericht unverändert (bitte mit den Akzentzeichen am Anfang und Ende) einfügen und anschließend hier posten. Evtl. ergeben sich dann weitere Anhaltspunkte, ob und wo das Problem liegt.

    Viele Grüße
    Hans-Gerd

    Moderator Michi91

    (@michi91)

    add_filter( 'rest_authentication_errors', function( $result ) {
        // If a previous authentication check was applied,
        // pass that result along without modification.
        if ( true === $result || is_wp_error( $result ) ) {
            return $result;
        }
    
        // Get the client's IP address.
        $client_ip = $_SERVER['REMOTE_ADDR'];
    
        // Define the local server's IP address.
        $local_server_ip = '127.0.0.1'; // Change this to your local server's IP.
    
        // Bypass authentication if the request is coming from the local server.
        if ( $client_ip === $local_server_ip ) {
            return $result;
        }
    
        // No authentication has been performed yet.
        // Return an error if the user is not logged in.
        if ( ! is_user_logged_in() ) {
            return new WP_Error(
                'rest_not_logged_in',
                __( 'You are not currently logged in.' ),
                array( 'status' => 401 )
            );
        }
    
        // Our custom authentication check should have no effect
        // on logged-in requests.
        return $result;
    });
    

    Ggf. muss die Localhost-IP noch durch die öffentliche IP des Server ersetzt werden. Einfach ausprobieren

    • Diese Antwort wurde geändert vor 10 Monaten, 2 Wochen von Michi91.
    Thread-Starter wpapm

    (@wpapm)

    Hallo @michi91

    vielen Dank für deine Bemühungen! Da die Änderung das Problem nicht löste bin ich nochmals in mich gegangen … und fand das Problem vor dem Bildschirm 😉 Da in letzter Zeit gefälschte UA mit meiner eigenen Domain ankamen … hatte ich den UA voreilig gesperrt ohne zu beachten das dies mir eben genau dieses Problem bereiten wird. Tststs …

    @hage Sorry, ich hätte angeben sollen das die functions.php im Child-Theme abliegt.

    Problem gelöst, trotzdem Danke für eure Aufmerksamkeit. Ohne den Austausch hier hätte ich wohl noch länger gesucht 😉

    Mit freundlichen Grüßen und ein schönes Wochenende – Jan

    super – freut uns. Danke für die Rückmeldung und “Gelöst”-Markieren. 👍

    … und auch ein schönes Wochenende 😊

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Das Thema „Rest-API Problem“ ist für neue Antworten geschlossen.