使用Cookie登录,但不使用WordPress代码

时间:2018-06-21 作者:JansenSensei

我一直在寻找一种无需每次加载WordPress即可对用户进行身份验证的方法。简单地说,我生成的应用程序不使用任何类型的web工具包,因此当WordPress发送WordPress\\u logged\\u in cookie时,我将该cookie存储为字符串,然后手动将其发送回我的网站。

一方面,我将WordPress作为一个普通的网站使用,我编写了与WordPress表和我的自定义表交互的插件。所有这些都很标准。。。但我还想直接访问数据库,供实时应用程序使用,这些应用程序可以出于任何原因随时调用数据库,很明显,你不想每次想做与网站无关的事情时都加载WordPress。。。

我设法弄明白了如何使用用户名和密码验证用户登录,而不必加载WordPress,但这将生成cookie,这就是我想从现在开始使用的。我绝对不想为我在数据库上执行的每个操作发送用户名和密码,因此我需要知道如何在不实际加载WordPress的情况下验证cookie中的WordPress\\u logged\\u。

在这里,我设法找到了解决我问题的完美方法!它完全符合我的需要!Is there a way to use the Wordpress users but without loading the entire Wordpress core?

简单总结一下:像往常一样使用WordPress登录,然后生成自己的cookie并使用它来验证用户。如果cookie成功了,那么你知道用户已经通过WordPress进行了身份验证,所以请继续使用该用户。。。不幸的是,那篇帖子给我留下了一个我无法回答的问题。。。。

上面写着使用(如果这是你的饼干):

key: wordpress_logged_in_1234567890abcdef1234567890abcdef    
value: admin|1234567890|abcdef1234567890abcdef1234567890
要生成cookie值,请执行以下操作:

$key = ... // the key from the WP cookie
$value = ... // the value from the WP cookie
$hash = hash_hmac ( \'md5\' , $key.$value , \'some secret key\' );
这一切对于我以后如何使用它来验证我的cookie MYCOOKIE与wordpress\\u logged\\u登录的cookie是非常有意义的,但我没有得到的部分是如何实际获取生成cookie时使用的$键和$值。

WordPress将生成一个附加了哈希值的cookie名称,并将立即发送出去。如果这是一个普通的网页,那么我以后就可以从\\u COOKIE数组中获取值,但我现在需要该COOKIE名称和值,就像在生成COOKIE之后一样,这样我就可以生成我的同伴COOKIE并随它一起发送。。。是否有一个过滤器或函数或其他我可以调用的东西可以告诉我刚刚设置的cookie的名称和值?

谢谢

1 个回复
SO网友:JansenSensei

真不敢相信我居然自己找到了这个答案!!!:D

如果其他人对此感到好奇:

cookie的名称在常量LOGGED\\u in\\u Cookiet中定义,要获取其值,只需设置如下操作:

add_action( \'set_logged_in_cookie\', \'action_set_logged_in_cookie\', 10, 5 ); 
function action_set_logged_in_cookie( $logged_in_cookie, $expire, $expiration, $user_id, $logged_in )
$logged\\u in\\u cookie是值。因此,要回答我的问题,我必须:

$hash = hash_hmac ( \'md5\' , LOGGED_IN_COOKIE . $logged_in_cookie  , \'some secret key\' );

结束

相关推荐

既然`wp_login`已弃用,是否应该使用它?

我正在编写一个小脚本,在登录后需要用户角色。我想wp_login() 那就太好了。我读到这个在用户登录后运行,包含2个参数,其中一个是用户名。通过用户名,我可以了解他们的角色。但看起来wp_login() 已经有很长一段时间不推荐使用了。我不认为wp_signon() 可以用同样的方式满足我的需求wp_login() 可以问题是,我应该使用wp_login() 钩