我能够创建通行证和签名,我正在尝试实现一个web服务来注册通行证和设备。我已经实现了web服务端点来处理帖子、删除和获取。
我对通行证有问题无法注册:
if (strtoupper($_SERVER['REQUEST_METHOD']) === "POST"
&& isset($_SERVER['HTTP_AUTHORIZATION'])
&& strpos($_SERVER['HTTP_AUTHORIZATION'], 'ApplePass') === 0
&& $request[2] === "devices"
&& $request[4] === "registrations") {
$auth_key = str_replace('ApplePass ', '', $_SERVER['HTTP_AUTHORIZATION']);$_SERVER‘’HTTP_AUTHORIZATION‘返回null,所以我将不输入寄存器--一个pass函数
我已经在我的cPanel管理器中安装了来自godaddy的ssl证书,还需要对服务器做些什么呢?
我正在使用Echo (mac商店)测试我的web服务
此外,我一直在创建通行证,日志中没有显示任何内容。
如有任何帮助,将不胜感激。
新到php和存折
谢谢
发布于 2013-11-26 01:14:02
您的问题是,您没有正确地获得授权头。
如果您正在使用Apache,那么大多数PHP/Apache发行版都附带了一个内置功能 apache__request_headers()。
您可以如下所示:
$headers = apache_request_headers();
if (strtoupper($_SERVER['REQUEST_METHOD']) === "POST"
&& isset($headers['Authorization'])
&& strpos($headers['Authorization'], 'ApplePass') === 0
&& $request[2] === "devices"
&& $request[4] === "registrations") {
$auth_key = str_replace('ApplePass ', '', $headers['Authorization']);如果您的发行版没有apache_request_headers函数,则可以复制它。
if (!function_exists('apache_request_headers')) {
function apache_request_headers() {
foreach($_SERVER as $key=>$value) {
if (substr($key,0,5)=="HTTP_") {
$key=str_replace(" ","-",ucwords(strtolower(str_replace("_"," ",substr($key,5)))));
$out[$key]=$value;
}else{
$out[$key]=$value;
}
}
return $out;
}
}对于Nginx,然后将下面的fastcgi_param添加到您的配置中,然后可以使用$_SERVER['Authorization']访问变量。
fastcgi_param Authorization $http_authorization;https://stackoverflow.com/questions/20203271
复制相似问题