我的用户从另一个系统来到我的wordpress网站。这个系统正在向我的Wordpress发送$ _SESSION。
我有如何自动登录的功能。但问题是,我可以从我的数据库中获取哈希密码。我需要禁用密码哈希,我的功能才能正常工作。
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' );
?>
你能帮帮我吗?
答案 0 :(得分:0)
如果他们因为在第三方系统中登录而应该登录,那么您应该如何对他们进行身份验证。
$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);
}
}
通过这种方式,您可以在不影响安全性的情况下将其登录
相关文档:
clean_user_cache
wp_set_current_user
wp_validate_auth_cookie
wp_clear_auth_cookie
wp_set_auth_cookie