在我的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-config中设置cookie域:
define('COOKIE_DOMAIN', '.domain.com');
也包括子域:
define('COOKIE_DOMAIN', 'sub.domain.com');
都不适合我。
服务器在PHP7.1上运行,使用Varnish。Swift性能用于缓存。
发布于 2020-01-13 12:18:10
清漆是问题所在。
清漆从响应中删除cookie。这就是为什么它对我们的案子无效的原因!
发布于 2020-01-07 01:34:24
您需要在wp_signon之后设置auth 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'] );
https://wordpress.stackexchange.com/questions/355855
复制相似问题