WordPress插件是否有办法对当前请求的用户进行身份验证?
我的计划是通过包含用户名和密码的HTTP头对用户进行身份验证。然后,应使用此信息处理当前请求,就像此用户将登录一样。但是,不应设置会话cookie或任何内容,以便身份验证仅对当前请求有效。
(我知道安全问题,已经解决了)
该机制应适用于呈现HTML且不限于JSON API的普通页面。
Background
我的WordPress安装无法从internet访问,但可以从应用程序服务器进行反向代理。我将WordPress中的一些页面配置为仅对某些WordPress用户可用。
现在,我想将WordPress中使用的权限用于其用户,以确定可以从应用程序服务器访问哪些内容。WordPress中的用户基本上类似于应用服务器的用户组。这样,我就可以在WordPress中使用完整的权限系统,而无需从WordPress实例中的应用服务器复制用户数据库。
最合适的回答,由SO网友:Rup 整理而成
是的,你可以钩住determine_current_user. 以下是WordPress调用处理身份验证Cookie的现有代码的方式:
add_filter( \'determine_current_user\', \'wp_validate_auth_cookie\' );
add_filter( \'determine_current_user\', \'wp_validate_logged_in_cookie\', 20 );
例如,请参见
wp-includes/pluggable.php.一旦处理完标头,筛选器应返回要验证的用户的用户ID。
这就是说,我假设您的应用程序服务器已经完成了身份验证,因此您不需要在此处实际验证密码:只要外部用户无法伪造到WordPress头的身份验证(并通过反向代理获得),用户名就足够了。