我有一个Wordpress
网站,我有另一个server
.
人们登录wordpress站点,然后在稍后阶段浏览其他服务器。在另一个服务器页面上,有从Wordpress REST API获取信息的JS fetch请求。我希望Wordpress服务器根据用户的不同返回不同的结果。
我可以连接到wp\\u登录,例如。
<?php
function login_server_aswell( $user_login, $user ) {
// tell server user loggin in, get session token back
// Now can\'t store the session token in a place where when they browse to the server webpage it can see the cookie
}
add_action(\'wp_login\', \'login_server_aswell\', 10, 2);
?>
我的问题是,在我登录后,我可以告诉其他服务器,这个用户登录后,给我一个会话令牌。但是我只能将会话令牌存储在wordpress站点下的cookie中,而不能存储在服务器站点下,因为cookie不是跨站点的。
有什么概念或总体指导可以为我指明正确的方向吗?
最合适的回答,由SO网友:Jos Faber 整理而成
您可以连接到WP站点中的登录过程,并在登录时为该用户创建一个唯一的令牌(存储在meta中)。然后可以将令牌发送到另一台服务器,该服务器可以使用该令牌查询WP API。
您必须创建一个自定义端点来验证用户令牌。可能最好也为userid设置一些哈希。
此外,在从WP站点注销或在某些令牌验证cronjob中注销时,出于安全目的,必须使该令牌无效。更好的是,如果只是来自“另一个”服务器的一个请求,则立即失效,如果再次在WP服务器上,则创建一个新令牌。所以实际上,它是多个服务器上的CSRF令牌(nonce)。