Как я могу найти Сессию / Cookie, связанные с логином в Wordpress? - PullRequest
0 голосов
/ 27 мая 2019

Мне было поручено создать новый логин для существующей wp-страницы.Все, что я написал, прекрасно работает, но я не знаю, как подключить свой логин к остальной части сети.Я не совсем уверен, работает ли он по $ _SESSION или $ _COOKIE или есть какой-либо метод wp (который не похож).В существующем коде я видел, как оба вызывались несколько раз, но я не очень хорошо понимаю, почему или какой из них я перезаписываю.

После поиска сгенерированных файлов cookie и сеансов я обнаружил следующее (Cookies):

  • PHPSESSID
  • __ stripe_mid
  • __ stripe_sid
  • wordpress_loged_in__b13ff0431856f9aa64c4651e81fb25ae
  • wordpress_sec_b13ff0431856f9aa64c4651e81fb25ae
  • wp-settings-1
  • * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *1011* 1018 * 101 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *1017* * * * * *оригинальный код, но, как я уже сказал, ни один из них не включает информацию о пользователе, и ни один из них не написан на старой странице входа.Я попытался инициализировать сеанс с:
    $wp_session = WP_Session::get_instance();
    

    , который не работал, поэтому я попытался с

    $wp_session = WP_Session_Tokens::get_instance();
    

    Ничего не сработало.

    Это весь мой процесс входа в систему.Не против помнить флажок, так как я тестировал разные вещи.

    <?php 
        global $wpdb;
        require_once('./wp-load.php');
        get_header();
    
        $wp_session = WP_Session_Tokens::get_instance(1);
    
    
    ?>
    
    
    <?php
        if (!isset($wp_session)) {
            if (isset($_POST['user']) && $_POST['user'] != "" && isset($_POST['password']) && $_POST['password'] != "" ) 
            {
                $user = $_POST['user'];
                $pass = $_POST['password'];
                $remember = $_POST['mantenerSesion'];
    
                $query = "SELECT * FROM wp_users WHERE user_login = '".$user."'";
                $result = $wpdb->get_results($query, OBJECT);
    
                $user_password  = $result[0]->user_pass;
                $user_login = $result[0]->user_login;
                $user_id = $result[0]->ID;
                $user_email = $result[0]->user_email;
    
                $login_ok = wp_check_password($pass, $user_password, $user_id);
                if ($login_ok) {
                    $wp_session['user_email'] = $user_email;
                    $wp_session['user_id'] = $user_id;
                    $wp_session['user_login'] = $user_login;
                    $wp_session['user_password'] = $user_password;
    
                    if (isset($remember) && $remember != "") {
                        $wp_session['remember'] = $remember;
                        $sign_on = wp_signon($wp_session, false);
                    }else{
                        $sign_on = wp_signon($wp_session, false);
                    }
    
                    if (is_wp_error($sign_on)) {
                        echo $sign_on->get_error_message();
                    } else{
                        header('Location: https://localhost/reclamador');
                    }
    
    
                } else{
                    echo "Tu correo y contraseña no coinciden";
                    header('Location: https://localhost/reclamador/login.php?error');
    
                }
            } else
            {
                echo "Debe rellenar todos los campos del formulario";
            }
        }elseif (isset($wp_session) && !empty($wp_session)) {
            header('Location: https://localhost/reclamador/');
        }
    
    ?>
    

    Мне просто нужно знать способ соединения с wp sessión, поэтому, когда пользователь входит в систему, он может получить доступ ко всем функциям Интернета.Ребята, еще раз спасибо за помощь!

    ОБНОВЛЕНИЕ

    Я только что обнаружил, что файл cookie, содержащий информацию, называется wordpress_loged_in__b13ff0431856f9aa64c4651e81fb25ae, и я нашел его внутри кода.Страница, содержащая его, является class-freemius.php, и это единственное, что с ней связано:

    if ( ! defined( 'LOGGED_IN_COOKIE' ) ) {
        define( 'LOGGED_IN_COOKIE', 'wordpress_logged_in_' . COOKIEHASH );
    }
    

    Как старый логин хранил здесь информацию?Как мне сделать то же самое?

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