sql >> Databáze >  >> RDS >> Mysql

Zajistěte, aby přihlášení k webu fungovalo i na WordPressu

Přihlašování do wordpressu můžete nastavit tak, aby používala vlastní tabulku úpravou souboru config.php a přidáním těchto dvou řádků:

define('CUSTOM_USER_TABLE','new_user_table'); //login, pass, email etc
define('CUSTOM_USER_META_TABLE', 'new_usermeta_table'); //optional bio, don't have to include this line

Kde new_user_table je tabulka vašeho webu a new_usermeta_table je tabulka bio vašeho webu (pokud ji chcete)

Vlastní tabulka musí mít stejnou strukturu jako normální tabulka wordpress. Aby to fungovalo s tabulkou vašeho stávajícího webu, budete muset přidat některá pole a ujistit se, že heslo je zahašováno stejným způsobem.

Zde je návod, jak strukturovat tabulku uživatelů

Zde je návod, jak strukturovat uživatelskou metatabulku

Pro správnou hašování hesel při registraci vložte soubor wp-includes/pluggable.php a použijte funkci
<?php $hash = wp_hash_password( $password ) ?>

U stávajících hesel, která nejsou správně hašována, budete muset nastavit obnovení hesla e-mailu.

Nebo. pokud si chcete ponechat svá aktuální hash hesla (nedoporučuje se to z bezpečnostních důvodů, ale je to proveditelné), můžete změnit funkci hash wordpress. V souboru wp-includes/pluggable.php změňte:

if ( !function_exists('wp_hash_password') ){
    function wp_hash_password($password) {
                //apply your own hashing structure here
            return $password;
    }
}

A změna:

if ( !function_exists('wp_check_password') ){
    function wp_check_password($password, $hash, $user_id = '') {
            //check for your hash match
            return apply_filters('check_password', $check, $password, $hash, $user_id);
            }
}

Podrobnosti o wp_check_password Přejděte sem

Alternativně

Můžete přeskočit pohrávání si s vlastní uživatelskou tabulkou a nechat přihlášení wordpress aplikovat na zbytek vašeho webu. Chcete-li to provést, jednoduše použijte následující kód:

<?php
include 'wp-config.php';
if ( is_user_logged_in() ) {
    echo 'Welcome, registered user!';
} else {
    header( 'Location: http://google.com' ) ;
};
?>

Ujistěte se, že 'wp-config.php' je úplná relativní cesta k souboru, poté umístěte tento kód na každou stránku na vašem webu, který není wordpress. nahraďte echo jakýmkoli obsahem, který se má zobrazit přihlášenému uživateli, a záhlaví nahraďte tím, co se má zobrazit hostovi. Pokud je obsah jednoduchý html, můžete provést následující:

<?php
include 'wp-config.php';
if ( is_user_logged_in() ) {
?>

<html>
<head></head>
<body><p>Welcome Registered user</p></body>
</html>

<?php
} else {
?>

<html>
<head></head>
<body><p>Please log in</p></body>
</html>

<?php
};
?>


  1. Čtení/zápis rozdělení pomocí Zend_Db

  2. AVG + vnitřní spojení

  3. Používání Passport s Sequelize a MySQL

  4. 4 způsoby, jak zkontrolovat datový typ sloupce v MySQL