在我的localhost环境中,下面的代码工作得很好
$creds[\'user_login\'] = $user_login;
$creds[\'user_password\'] = $user_password;
$user = wp_signon( $creds, true );
if(!is_wp_error($user)) {
wp_redirect(\'/home\');
exit;
}
但在服务器上,它不再工作了。用户从未登录。该网站托管在外部服务器上的https子域上。
我尝试在wp配置中设置cookie域:
define(\'COOKIE_DOMAIN\', \'.domain.com\');
还包括子域:
define(\'COOKIE_DOMAIN\', \'sub.domain.com\');
对我来说都不管用。
服务器运行在带有Varnish的PHP 7.1上。Swift性能用于缓存。
SO网友:Tejas Gajjar
您需要在wp\\u登录后设置身份验证cookie。添加此代码并尝试让我知道结果。
$user = wp_signon( $creds, false );
$userID = $user->ID;
wp_set_current_user( $userID, $creds[\'user_login\'] );
wp_set_auth_cookie( $userID, true, false );
do_action( \'wp_login\',$creds[\'user_login\'] );