我将Wordpress部署到AWS EB平台PHP 5.4.45。当我使用cookie授权从Angular前端向API发出请求时,我需要包含X_WP_NONCE
标头,否则,Wordpress将忽略我的身份验证cookie。
问题是,在EB部署中,X_WP_NOCE
变量中没有$_SERVER
。没有HTTP_X_WP_NONCE
。根本就没有现成品。
看起来所有以X_*
为前缀的标题都会被删除。
curl -XGET -H 'A: this works' -H 'X_A: this does not work' http://example.com/
var_dump($_SERVER);
--->
array(76) {
...
["HTTP_A"]=>
string(19) "this works"
...
// But no HTTP_X_A variable
)
不幸的是,X_WP_NONCE
是wordpress核心的一部分,我无法编辑此代码。
如何告诉EB将X_*
标头传递给php?
谢谢,
更新1: apache_request_headers()会看到所需的标题。
答案 0 :(得分:0)
由于我已将自定义wp-config.php
提交到repo(它从环境变量读取密钥和密码,请不要Booo),我可以添加一个临时解决方法
if (function_exists('apache_request_headers')) {
$all_headers = apache_request_headers();
$_SERVER['HTTP_X_WP_NONCE'] = $all_headers['HTTP_X_WP_NONCE'];
}