2017-09-27 1 views
0

meine Benutzer kommen von einem anderen System zu meiner Wordpress-Website. Dieses System sendet $ _SESSION an mein Wordpress.Wordpress Passwort Hashing deaktivieren

Ich habe Funktion, wie Login automatisch zu machen. Aber das Problem ist, dass ich einfach ein Hash-Passwort von meiner DB nehmen kann. Ich muss das Passwort Hashing deaktivieren und meine Funktion wird funktionieren.

function wpdocs_custom_login() { 

     if(isset($_SESSION['usr_email'])){ 
      $user = get_user_by('login', $_SESSION['usr_login']); 

      $creds = array(
       'user_login' => $user->user_login, 
       'user_password' => $user->user_pass, 
       'remember'  => true 
      ); 

      $user = wp_signon($creds, false); 

      if (is_wp_error($user)) { 
       echo $user->get_error_message(); 
      } 
     } 

} 

// Run before the headers and cookies are sent. 
add_action('after_setup_theme', 'wpdocs_custom_login'); 
?> 

Können Sie mir bitte helfen?

Antwort

0

So sollten Sie Personen authentifizieren, wenn sie eingeloggt sein sollten, weil sie in einem Drittanbieter-System angemeldet sind.

$user = get_user_by('login', $_SESSION['usr_login']); 
if($user) 
{ 
    clean_user_cache($user->ID); 
    wp_set_current_user($user->ID); 
    if (wp_validate_auth_cookie() == FALSE) 
    { 
     wp_clear_auth_cookie(); 
     wp_set_auth_cookie($user->ID, true); 
    } 
} 

Auf diese Weise können Sie sie anmelden, ohne die Sicherheit zu gefährden.
Relevante Dokumente:
clean_user_cache
wp_set_current_user
wp_validate_auth_cookie
wp_clear_auth_cookie
wp_set_auth_cookie