- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想扩展 ReSTLer 以检查是否传递了自定义 header 授权的有效值。我在绕过修复时遇到问题,我试过了,但没有机会:
class AuthenticateMe implements iAuthenticate() {
function __isAuthenticated() {
//return isset($_SERVER['HTTP_AUTH_KEY']) && $_SERVER['HTTP_AUTH_KEY']==AuthenticateMe::KEY ? TRUE : FALSE;
$headers = apache_request_headers();
foreach ($headers as $header => $value) {
if($header == "Authorization") {
return TRUE;
} else {
//return FALSE;
throw new RestException(404);
}
}
}
}
最佳答案
让我快速修复您的自定义身份验证 header 示例
class HeaderAuth implements iAuthenticate{
function __isAuthenticated(){
//we are only looking for a custom header called 'Auth'
//but $_SERVER prepends HTTP_ and makes it all uppercase
//thats why we need to look for 'HTTP_AUTH' instead
//also do not use header 'Authorization'. It is not
//included in PHP's $_SERVER variable
return isset($_SERVER['HTTP_AUTH']) && $_SERVER['HTTP_AUTH']=='password';
}
}
我已经测试过它以确保它有效!
这里是如何让它与 Authorization header 一起工作,它只在 apache 服务器上工作
class Authorization implements iAuthenticate{
function __isAuthenticated(){
$headers = apache_request_headers();
return isset($headers['Authorization']) && $headers['Authorization']=='password';
}
}
我发现 PHP 将 Authorization
header 转换为 $_SERVER['PHP_AUTH_DIGEST']
或 $_SERVER['PHP_AUTH_USER']
和 $_SERVER['PHP_AUTH_PW']
根据身份验证请求的类型(摘要或基本),我们可以使用以下 .htaccess
文件来启用 $_SERVER[ 'HTTP_AUTHORIZATION']
header
目录索引index.php
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ index.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]
</IfModule>
重要的部分是RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]
现在我们的例子可以简化为:
class Authorization implements iAuthenticate{
function __isAuthenticated(){
return isset($_SERVER['HTTP_AUTHORIZATION']) && $_SERVER['HTTP_AUTHORIZATION']=='password';
}
}
关于php - 检查 ReSTLer API 框架上的 header 授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7818867/
我想开始使用 ReSTLer 开发一个 Rest api,但是我找不到任何关于如何安装它的详细信息,此外,它似乎在 nginx 服务器上运行。 有没有办法在 apache 上运行这个框架?是否有其他替
你好 ReSTLer 的 friend 们, 我目前正在尝试切换到 ReSTLer 作为我们的主要 Rest-Framework。真正促使我做出决定的是 Swagger 的合规性。我发现为成长中的系统
我被困在这里,在 wamp 中我运行所有东西并且工作正常,但是,当我试图在 centos 盒子中安装我的 api 时,我总是得到一个“未找到”错误。 我不知道还能做什么! 即使是 say/hello
我正在使用 ReSTLer 2.0,我正在尝试添加一个基于 CRUD 示例的新路由 $o['GET']['author/:name/:email']=array ( 'class_name' =>
为了构造函数注入(inject),是否可以将参数传递给 API 类?例如,在 index.php 我有以下内容: $r->addAPIClass('Contacts', ''); Contacts.p
有没有办法将 RC3“复制并粘贴”到我的主机上,而无需运行“make composer-install”?不幸的是,我的主人很糟糕,不允许这样做。 ReSTLer 2 的安装就像将文件放入目录并进行一
我正在使用 Luracast reSTLer,我正在尝试通过实现 iAuthenticate 接口(interface)来实现一些身份验证。 问题是,我的身份验证代码需要查询我的数据库以检索用户私钥。
如果参数具有特定值,我想限制对方法的访问。让我们以这个类为例: 简单.php: class Simple { function item($name) { if($na
This is the web service file _ws.php addAPIClass('news'); $r->handle(); 这是具有以下功能的类文件: load('news.xml
https://github.com/danwrong/restler http://nodejs.org/ 为了下载文件,我在服务器端脚本(而不是客户端 Web 浏览器)中使用来自 nodejs 的
我正在使用 Luracast ReSTLer API 框架,想知道如何组织类结构来创建这种风格的路线。 webroot/user/:id/ webroot/user/:id/profile webro
我正在使用 reSTLer 编写 REST api,并且由于我不想进行一些基本身份验证,所以我需要将不是来自 https 的每个请求重定向到 https。 有没有人知道使用 reSTLer 提供的 .
我已经在我的本地服务器上安装了 ReSTLer 来为我的项目测试和制作一些 API。 Api 请求通过 http://localhost/myproject/api/ 处理。 问题是每次我尝试发出请求
我想下载一个网站 (html) 并将其写入带有 Node 和 reSTLer 的 .html 文件。 https://github.com/danwrong/Restler/ 他们的初始示例已经完成了
我正在尝试正确注释我的方法,以便 ReSTLer 的资源管理器将 REQUEST_BODY 显示为 put 和 push 值作为我的对象的值。现在我看到的是 { "property": ""} 。 我
我创建了一个用于发送 REST 请求的库: var rest = require('restler'); module.exports = { beginSession: function()
我正在使用漂亮的 ReSTLer REST 框架将数据库中的一些资源公开给各种客户端。 现在当从服务返回结果时,格式有点像这样(我在这里使用 ReSTLer 网站自己的示例作为基础): [ {
我有一个非常简单的类,它派生自 ReSTLer 网站上给出的示例“Say”类。如下:
有谁知道如何编写 reSTLer 代码以与 php 和 mysql 一起工作以生成如下内容: 我想创建一个 XML API Web 服务,但不确定从哪里开始。 我希望人们能够使用 http 请求在数据
我是 REST 架构的新用户,现在我正在尝试使用我的 API 进行测试。我喜欢在 url 中调用此方法,但我不知道正确的格式。 我担心的是我有两个参数要通过 post 请求发送。 public fun
我是一名优秀的程序员,十分优秀!