繁体   English   中英

wp_set_auth_cookie无法登录用户到Wordpress网站

[英]wp_set_auth_cookie not loggin in user to wordpress site

在Im下方,通过curl从其他站点接收发布数据。 并在站点B中登录用户而无需密码验证。 当我检查用户是否在此处登录时,它返回true。 当我回显当前用户时,它从站点B数据库返回了一个正确的消息。

但是,当我手动或通过重定向访问站点B时,似乎没有登录用户。

为什么这样? 如何自动启用用户登录?

$user = $_POST;
    $a = get_user_by('login', $user['data']['user_login']);

 wp_set_current_user( $a->data->ID );
 wp_set_auth_cookie( $a->data->ID );
 do_action('wp_login', $a->data->user_login, $a);
echo site_url();
var_dump(wp_get_current_user());
exit;

“为什么?”-因为您可以在服务器端进行CURL请求登录,所以在请求完成后,一切都会被忘记和清除。

我建议您为此使用一次性令牌逻辑。 例如,在A端中,您生成此类链接并将网页重定向到该链接: http:// B /?auth_token = SOME_CRYPTED_TOKEN_HERE

SOME_CRYPTED_TOKEN_HERE-是一些加密信息,包含用户ID,登录名等。

在B端编写检查的简单脚本

if (isset($_GET["auth_token"])) {
 //do some decrypt here and check if auth_token is valid, and after decryption use ID and login to make auth
 wp_set_current_user( $ID );
 wp_set_auth_cookie( $ID );
 do_action('wp_login', $LOGIN);
}

我希望这个主意很清楚。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM