我正在使用 Lumen 框架在 API 中实施身份验证。我正在标题中传递 api_token ,在我的localhost,wampserver上它正常工作。在 Linux服务器上传时,它会在 api_token标题中显示空值。我正在使用 postman 来检查回复
继承我的AuthMiddleware @处理代码以检查值。
echo $request->header("api_token");
我大部分时间用谷歌搜索,发现公共/ .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。请帮我解决相关的配置或解决方案。
答案 0 :(得分:2)
请求标头密钥应避免使用underscore
。 hyphen
更常见,您应该将请求标头密钥重命名为 api-token 。根据{{3}}:
标头到环境变量的转换比严格要好 之前通过缓解一些可能的跨站点脚本攻击 标题注入。 包含无效字符的标头(包括 下划线)现在默默地放弃。 Apache中的环境变量 有一些关于如何解决破碎的遗留客户的问题 需要这样的标题。 (这会影响使用这些模块的所有模块 环境变量。)