jpa*_*kal 34 php authorization http-headers
所以我试图在PHP中解析传入的请求,该请求具有以下标头集:
Authorization: Custom Username
Run Code Online (Sandbox Code Playgroud)
简单的问题:我怎么能得到它的手?如果是的话Authorization: Basic
,我可以从中获取用户名$_SERVER["PHP_AUTH_USER"]
.如果是的话X-Custom-Authorization: Username
,我可以从中获取用户名$_SERVER["HTTP_X_CUSTOM_AUTHORIZATION"]
.但这些都不是由自定义授权设置的,var_dump($_SERVER)
没有提到标题(特别AUTH_TYPE
是缺少),PHP5函数get_headers()
只能处理对传出请求的响应.我在Apache上使用开箱即用的Ubuntu安装运行PHP 5.
hal*_*dan 43
如果您只打算使用Apache,可能需要查看apache_request_headers()
.
dee*_*ter 42
对于基于令牌的身份验证:
$token = null;
$headers = apache_request_headers();
if(isset($headers['Authorization'])){
$matches = array();
preg_match('/Token token="(.*)"/', $headers['Authorization'], $matches);
if(isset($matches[1])){
$token = $matches[1];
}
}
Run Code Online (Sandbox Code Playgroud)
kar*_*san 21
将此代码添加到您的 .htaccess
RewriteEngine On
RewriteRule .* - [e=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Run Code Online (Sandbox Code Playgroud)
传递你的标题Authorization: {auth_code}
,最后你通过使用获得授权代码$_SERVER['HTTP_AUTHORIZATION']
Hou*_*lla 14
只需使用:
$headers = apache_request_headers();
$token = $headers['token'];
Run Code Online (Sandbox Code Playgroud)
对于后台,为什么Apache过滤掉Authorization
标题:https://stackoverflow.com/a/17490827
解决方案取决于使用哪个Apache模块将请求传递给应用程序:
mod_wsgi,mod_fcgid:
CGI:
其他黑客 - 在这个问题中按摩标题:
归档时间: |
|
查看次数: |
60287 次 |
最近记录: |