Файлы cookie Wordpress SSL не устанавливаются при входе в систему - PullRequest
0 голосов
/ 19 января 2019

Я создаю приложение Next.js, работающее на Node, которое взаимодействует через API с установкой Wordpress, обслуживаемой Apache.Все это SSL.

Вот как я настроил свой виртуальный хост на Apache:

<VirtualHost myproject.test:443>
    ServerName myproject.test
    DocumentRoot "/Users/myusername/Sites/myproject/backend"
    SSLEngine on
    SSLCertificateFile "/Users/myusername/Sites/myproject/ssl/server.crt"
    SSLCertificateKeyFile "/Users/graziano/Dropbox/myproject/ssl/server.key"        
    SSLProxyEngine On   
    ProxyPass /wp-admin ! 
    ProxyPass /wp-login.php ! 
    ProxyPass /index.php !  
    ProxyPass /wp-json !  
    ProxyPass / https://myproject.test:3000/
    ProxyPassReverse / https://myproject.test:3000/
</VirtualHost>

Созданный мной внешний интерфейс включает в себя форму входа, которая регистрирует пользователя в Wordpress через собственный маршрут API:

// The route itself: 

https://myproject.test/wp-json/custom/v1/login?email=admin@myproject.test&password=admin

// The route configuration:

function login() {
    register_rest_route( 'custom/v1', '/login', array(
        'methods' => 'GET',
        'callback' => array( $this, 'login_callback' )
    ));        
}    

function login_callback( $req ) {         

    $userCreds = array(
        "user_login" => $req[ 'email' ], 
        "user_password" => $req[ 'password' ], 
    );

    $userLogin = wp_signon( $userCreds, true );  
    $userID = $userLogin->ID; 

    return $userID;  

} 

Все работает хорошо: когда пользователь входит в систему, используя форму входа, которую я создал в приложении Next.js, вызывается пользовательский маршрут, который корректно устанавливает файл проверки подлинности Wordpress по умолчанию, который выглядит какthis:

wordpress_logged_in_17c62dadff4e171bfa0e0441ae1d0576

Что не работает, так это то, что при установке второго параметра wp_signon в значение true, как я делал в функции login_callback, также должен быть установлен безопасный cookie, и он выглядитчто-то вроде этого:

wordpress_sec_17c62dadff4e171bfa0e0441ae1d0576

Но этот файл cookie не устанавливается, и я понятия не имею, почему нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...