2017-04-11 4 views
0

Ich weiß, es ist ein wenig kompliziert, aber es gibt eine Menge Vorteile für mich mit diesem Szenario schicken,Wie HTTPS Antwort von einem Wordpress-Website auf einen anderen

Ich bin auf einem Wordpress-Projekt arbeiten und müssen die überprüfen Benutzer-Lizenz, so dass ich ein AJAX-Formular hat die erforderlichen Felder von Benutzer, Leider benötigt die Verifizierung API einen geheimen Schlüssel (gehört mir und kann nicht in das Projekt des Kunden), so habe ich eine externe WordPress-Website (Unterordner auf meiner Website) und entwickeln zwei kleine [Plugin & Theme].

- In der Client-Seite

Ich bereite den Anwender sensible Daten auf meine Website zu schicken wie diese ...

mit Wordpress-Funktion (wp_safe_remote_get)
$request_url = 'HTTPS://MY_WEBSITE/verify?api=XXX&some=XXX&some=XXX'; 

$response = wp_safe_remote_get( 

    $request_url, 

    array(
     'timeout' => 300 
    ) 
); 

- Auf meiner Webseite

  1. Das Thema hat eine [3 Dateien: style.css, functions.php und verify.ph p] und die verify.php hat diese Zeile [do_action ('xxx')].

  2. Das Plugin hat [add_action (‚xxx‘)] im Konstruktor den Verifikationsprozess zu tun und natürlich eingeschlossen ich meine hier SECRET KEY ..

  3. sammeln _GET params $ und überprüfen dann eine Rückkehr Array mit dem Ergebnis, unter Verwendung von [print_r] so dass das Endergebnis genau wie dieser von Browser Elemente untersucht

    BODY_TAG>

    Array ( [API_RESULT] => Array ('bestätigt' => true); )

    /body>

Die Ausgabe

In der Client-Seite ich die vorherige Array erhalten, aber abgesehen davon, eine Menge enthalten Skripte und CSS-Pfade zu meinem Wordpress-Website gehört, So ...

  1. Ich brauche nur den Antworttext ohne die anderen enthaltenen Dateien zu erhalten.
  2. Ist das sicher genug?
  3. Gibt es eine Lösung für dieses Szenario so etwas wie eine PHP-Datei anstelle einer WordPress-Website erstellen, aber sicherer sein wird ??

Danke für Ihre Hilfe.

+0

Ich habe diesen Teil gelesen: 'Leider benötigt die Verifizierungs-API einen geheimen Schlüssel (gehört zu mir und kann nicht in das Projekt einbezogen werden)'. Also ... hast du jemals öffentliche/private Schlüssel benutzt? – Mjh

+0

Ich schließe diesen geheimen Schlüssel in das Plugin meiner Webseite ein, um die Verifizierungsprozesse durchzuführen, kann nicht in das Projekt des Kunden einbezogen werden –

Antwort

0

1. Server Side

Wenn Sie ein Array an die Client-Seite zu senden, machen Sie Ihre Prozesse, die Sie brauchen dann serialisierten Array drucken.

Index.php

do_action('YOUR_ACTION_NAME', 'VAR_1', 'VAR_2'); 

class_processes.php

function __construct() { 

    add_action('YOUR_ACTION_NAME', array(&$this, '__Trigger_User_Action'), 10, 2); 

} 

public function __Trigger_User_Action($seller_name = '', $token_type) { 

    $user_final_data = array(); 

    // Do Some 

    die(serialize($user_final_data)); 

} 

2. Client Side

$request_url = 'https://DOMAIN.XXX/user_processes?user_name=XXX&code=XXX'; 

$response = wp_safe_remote_get( 

    $request_url, 
     array(
      'timeout' => 300 
     ) 
    ); 

    if(! is_wp_error($response)) { 

     $body_data = wp_remote_retrieve_body($response); 

     if(! is_wp_error($body_data)) { 

      $user_server_data = @unserialize($body_data); 

     } 

    } 

Jetzt $ user_server_data enthält das Array Sie in [print] Funktion übergeben durch deinen Server.

Verwandte Themen