gpt4 book ai didi

jQuery 检查 wordpress_logged_in cookie

转载 作者:行者123 更新时间:2023-12-03 22:48:00 24 4
gpt4 key购买 nike

有没有办法使用jquery检查wordpress cookie wordpress_logged_in

我正在使用cloudflare完整缓存,因此无法检查用户是否已登录此cookie,我尝试使用jquery读取它,但似乎受到保护且不可见,我只能使用PHP访问它。

这是我现在可以阅读的方法:

$logged_in = 'no'; 
if (count($_COOKIE)) {
foreach ($_COOKIE as $key => $val) {
if (preg_match("/wordpress_logged_in/i", $key)) {
$logged_in = 'yes';
}
}
}

也许可以简单地通过 jquery 来检查它,但我没有找到方法。

感谢您的帮助

最佳答案

您无法使用 js/jquery 访问名为 wordpress_logged_in 的 WordPress Cookie,因为它被标记为 HttpOnly :

A secure cookie is only sent to the server with a encrypted request over the HTTPS protocol... To prevent cross-site scripting (XSS) attacks, HttpOnly cookies are inaccessible to JavaScript's Document.cookie API; they are only sent to the server.

但是从 3.0 WordPress 开始,又添加了一个名为 wp-settings-{time}-[UID] 的 cookie当用户登录时:

WordPress also sets a few wp-settings-{time}-[UID] cookies. The number on the end is your individual user ID from the users database table. This is used to customize your view of admin interface, and possibly also the main site interface.

您可以使用js/jquery获取此cookie。因此,您甚至可以从 cookie 中获取用户 ID。

这里是用于获取 cookie 并检查用户是否登录的工作 js 函数:

function getLoggedInCookie() {
var cookie = document.cookie.indexOf('wp-settings-time') !== -1;

if(cookie){
alert('Logged in');
}else{
alert('Not User');
}
}
getLoggedInCookie();

jQuery 解决方案将包括 Cookie plugin添加到您的 WordPress 主题/插件并尝试使用它(可能需要进行一些修改)。

注意:

提供的代码将适用于登录表单,该表单使用标准 WordPress 功能和端点,例如 http://{website-name}/wp-admin/http://{网站名称}/wp-login.php。第三方插件无法设置名为 wp-settings-{time}-[UID] 的 cookie。

关于jQuery 检查 wordpress_logged_in cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48511579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com