302 при попытке получить доступ к админке WordPress через пользовательскую страницу входа, пока все в порядке со страницы входа по умолчанию - PullRequest
0 голосов
/ 07 мая 2020

У меня есть настраиваемая страница входа в мой плагин wordpress. Все шло хорошо, так как я сменил домен и включил SSL. Теперь все части работают нормально, кроме админки. Попытка войти в систему из / wp-login. php работает нормально, но при попытке войти с моей пользовательской страницы входа происходит следующее перенаправление:

https://example.com/wp-admin/admin-ajax.php 200
https://example.com/wp-admin/               302
https://example.com/wp-admin/login-register 301
https://example.com/login-register/         200

/ login-register - это адрес моей пользовательской страницы входа, и я использую ajax для отправки формы.

Затем появится панель администратора и все страницы, которым требуется вход в систему, будут работать нормально, но все еще пытаются получить доступ / admin дает результат, указанный выше.

При переходе на новый домен + SSL я добавил эти строки в wp-config. php:

define('FORCE_SSL_ADMIN', true);
$_SERVER['HTTPS']='on';

А также добавил следующие строки в .htaccess :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Код, который я использовал для аутентификации пользователей после проверки заданных параметров:

    wp_logout();
    $user = wp_signon(['user_login' => $username, 'user_password' => $password, 'remember' =>true], false);
    if (is_wp_error($user))
      return ['status'=>'ERROR', 'message'=>$user->get_error_message()];
    wp_set_current_user($user->ID, $username);
    wp_set_auth_cookie($user->ID, true, false);
    do_action('wp_login', $user->user_login, $user);
    return ['status'=>'OK'];

Также is_user_logged_in () возвращает True на init перехватчик после попытки входа в систему.

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