0

Using basic usage of ajax login wordpress, no cookie wordpress_logged_in_ are created on safari and Chrome and firefox doesn't read user when cookie "wordpress_logged_in".

I have several subdomain that use same theme. I have configured wp-config to have all cookie defined on : ".website.com" . Domain and all subdomain get well same cookies.

define('ADMIN_COOKIE_PATH', '/wp-admin'); define('COOKIE_DOMAIN', '.website.com'); define('COOKIEPATH', '.website.com'); define('SITECOOKIEPATH', '.website.com'); define('COOKIEHASH', md5('.website.com') ); 

I also added define ( 'FORCE_SSL_ADMIN' , true);

But I get only these cookies (each generated by wp-admin and /wp-content/plugin):

  • wordpress_
  • wordpress_sec_

SAFARI : I don't have wordpress_logged_in_ cookie only on safari . I have deleted all cache and cookies from safari browser but nothing helps.

CHROME and FIREFOX : I get well wordpress_logged_in_cookie. But is_user_logged_in() return always "no". however I can access to wordpress dashboard with user logged in. But this function work for me (admin)

My php code :

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']); $user_signon = wp_signon( $info, false ); if ( !is_wp_error($user_signon) ){ clean_user_cache($user_signon->ID); wp_set_current_user($user_signon->ID); wp_set_auth_cookie($user_signon->ID, true, is_ssl()); update_user_caches($user_signon->ID); echo json_encode(array('status'=>1, 'message'=>__('Login successful, redirecting...'))); } } wp_die(); } 

1 Answer 1

0

My problem was due to bad use of COOKIEPATH. The overwrite of COOKIE PATH blocked the browser to display and access to wordpress_logged_in_ cookie and its reading. The browser Safari was entirely blocked and didn't allow access to wordpress dashboard. Also the error "Cookie blocked : please activate cookies" of browser was entirely due to cookie.

My solution (work for domain and subdomain using same theme ):

define('ADMIN_COOKIE_PATH', '/wp-admin'); define('COOKIE_DOMAIN', '.website.com'); define('COOKIEPATH', '/'); define('SITECOOKIEPATH', '.website.com'); define('COOKIEHASH', md5('website.com') ); 

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.