首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >wp_signon在本地工作,而不是在https上工作。

wp_signon在本地工作,而不是在https上工作。
EN

WordPress Development用户
提问于 2020-01-07 08:32:20
回答 2查看 454关注 0票数 0

在我的localhost环境中,下面的代码工作得很好

代码语言:javascript
运行
复制
    $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域:

代码语言:javascript
运行
复制
define('COOKIE_DOMAIN', '.domain.com');

也包括子域:

代码语言:javascript
运行
复制
define('COOKIE_DOMAIN', 'sub.domain.com');

都不适合我。

服务器在PHP7.1上运行,使用Varnish。Swift性能用于缓存。

EN

回答 2

WordPress Development用户

回答已采纳

发布于 2020-01-13 20:18:10

清漆是问题所在。

清漆从响应中删除cookie。这就是为什么它对我们的案子无效的原因!

票数 0
EN

WordPress Development用户

发布于 2020-01-07 09:34:24

您需要在wp_signon之后设置auth cookie。添加这段代码,然后让我知道结果。

代码语言:javascript
运行
复制
$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']  );
票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/355855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档