1

我正在使用Lumen框架在API中实现身份验证。我在标头中传递api_token,在我的本地主机上,wampserver 它工作正常。在我的Linux 服务器上上传它时,它会在api_token 标头中给出空值。我正在使用邮递员检查回复

这是我的 AuthMiddleware@handle 代码来检查值。

echo $request->header("api_token");

我大部分时间都在谷歌上搜索,发现 public/.htaccess 更改需要但对我不起作用。

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

在我的 .htaccess 末尾

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

我不知道如何为请求标头配置 apache2。请帮助我有关相关配置或解决方案。

4

1 回答 1

4

underscore应该避免请求标头键。hyphen更常见,您应该将请求标头键重命名为api-token。根据Apache 2.4 新特性

将标头转换为环境变量比以前更严格,以通过标头注入减轻一些可能的跨站点脚本攻击。包含无效字符(包括下划线)的标题现在被静默删除。Apache 中的环境变量有一些关于如何解决需要此类标头的损坏的旧客户端的指示。(这会影响所有使用这些环境变量的模块。)

于 2017-12-16T17:41:22.237 回答