Intereting Posts

WP set auth cookie с использованием Ajax не сохраняется в браузере

Мы создаем внешнюю панель управления, которая использует данные WordPress, очевидно, мы используем WP REST API v2

Мы хотим полного отделения от традиционной WP Dashboard, но мы также хотим войти в систему пользователя «за кулисами» в WP Admin Dashboard, чтобы мы могли перенаправить пользователя на некоторые страницы интерфейса администратора плагина; из-за ограничения API WP REST

Это то, что мы сделали, мы создали настраиваемый плагин, у которого есть функция createAuthkey ниже, которая делает логины в пользователе, затем создает ключ (токен).

Важная часть, о которой мы заботимся, заключается в том, что если вход успешно завершен (wp_authenticate ()), мы также хотим сохранить wp_auth_cookie в браузере, так что даже если пользователь не будет напрямую войти в / wp-admin, если теперь браузер входит в WP admin страниц, мы хотим, чтобы они вошли в систему, и поэтому мы используем wp_set_auth_cookie (), но ответ AJAX НЕ сохраняет сохраненный файл cookie в ресурсах браузера (но правильно возвращает его в ответ), и поэтому, когда пользователь перенаправляется на страницу администратора WP , они выходят из системы

function createAuthKey( WP_REST_Request $request ) { // Get login information $username = $request->get_param( 'username' ); $password = $request->get_param( 'password' ); $user = wp_authenticate( $username, $password ); if ( is_wp_error( $user ) ) { return false; } $converter = new Encryption; $encoded = $converter->encode($username . ":" . $password); // Set Cookie: NOT SAVED TO BROWSER!!! wp_set_auth_cookie($user->ID, true); return ['key' => $encoded, 'cookie' => $_COOKIE]; } 

Solutions Collecting From Web of "WP set auth cookie с использованием Ajax не сохраняется в браузере"

Я предполагаю, что ваша пользовательская панель мониторинга находится в другом домене / поддомене, чем установка WordPress. Cookies могут быть установлены только для текущего домена.

Как правило, файлы cookie не будут работать с перекрестным доменом. Поэтому ваша панель инструментов не может создать файл cookie для веб-сайта WordPress. Теоретически можно обойтись с некоторыми конфигурациями сервера, но этот метод должен поддерживаться браузером пользователей.