login – wp-signon and wp_set_auth_cookie don’t set user cookies
Question
I can’t log in user !
WordPress returns false to wp_validate_auth_cookie
.
I get only these cookies (each generated by wp-admin
and /wp-content/plugin
):
- wordpress_e929v…
- wordpress_sec_e929v….
I don’t have these cookies:
- wordpress_logged_in
- wp-settings-time-1
- wp-settings-1
- wordpress_test_cookie
- wp_lang
My php code :
add_action('wp_ajax_atv_user_login','handle_user_login');
add_action('wp_ajax_nopriv_atv_user_login', 'handle_user_login');
function handle_user_login(){
check_ajax_referer( 'ajax-login-nonce', 'security' );
$log_param = isset($_REQUEST['log-param'])?trim($_REQUEST['log-param']):"";
if($log_param == "login_data" ){
$info = array();
$info['user_login'] = $_POST['user_login'];
$info['user_password'] = $_POST['user_pass'];
$info['remember'] = true;
$user = get_user_by( 'login', $info['user_login']);
if ( $user && wp_check_password( $info['user_password'], $user->data->user_pass, $user->ID ) ) {
$isActivated = get_user_meta($user->ID, 'is_activated', true);
}
$user_signon = wp_signon($info, false);
$data = array();
if(is_wp_error($user_signon)){
$error_string = $user_signon->get_error_message();
$data['status'] = array(0);
}else{
if(intval($isActivated) != 1){
$data['useremailauth'] = array('Send email to auth');
}else if(intval($isActivated) == 1){
$data['status'] = array(1);
clean_user_cache($user->ID);
wp_set_current_user($user->ID);
wp_set_auth_cookie($user->ID, true, is_ssl());
wp_user_settings($user->ID);
//setcookie('useratv','connected', time() + (3600), "/");
update_user_caches($user->ID);
if(!($user = wp_validate_auth_cookie($_COOKIE[LOGGED_IN_COOKIE], 'logged_in'))){
$data['islogin'] = "no login";
}
if(is_user_logged_in()){
$current_user = wp_get_current_user();
$userpicture = "test";
$data['userpicture'] = array($userpicture);
}
}
}
echo json_encode($data);
}
wp_die();
}
0
10 months
2022-08-20T08:54:03-05:00
2022-08-20T08:54:03-05:00 0 Answers
0 views
0
Leave an answer