waldemarnt / user-agent-bundle
处理用户代理版本头的包
v1.0.6
2015-10-01 23:33 UTC
This package is not auto-updated.
Last update: 2024-09-18 17:43:01 UTC
README
假设我们有一个需要通过用户代理和版本进行验证的API或外部连接,这个包将非常适合您的需求。
使用方法
列表按类型分隔。
安装
在您的composer.json中将它作为依赖项添加
"require": { "waldemarnt/user-agent-bundle": "2.*" }
更新您的 AppKernel.php 并添加以下行
new Wneto\UserAgentBundle\WnetoUserAgentBundle(),
使用方法
首先您需要理解这些是如何工作的。例如,一个浏览器请求发送的头部信息如下
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36
此示例使用POSTMAN创建,假设我需要接收来自Mozilla且版本高于5.0的请求。我需要做什么?别急,让我们来做!首先,我们需要在 config.yml 文件中进行配置
# you can found a sample inside Wneto/UserAgentBundle/Resources/samples/config/user_agent.yml wneto_user_agent: validation: true type: whitelist # blacklist or whitelist. With whitelist all request will be blocked and accept requests only from the setted patterns patterns: - { pattern: "Mozilla", version: "5.0", operator: ">" }
让我们理解,模式是代理的名称,名称在代理中位于 / 斜杠之前,允许 是一个布尔值,而 版本 将是您需要设置规则的版本,运算符 用于应用规则,例如大于 >、大于等于 >=、小于等于 <=
好的,现在我们只需要在我们的应用程序中添加一个验证,如下所示:首先将服务 @user_agent.validator.user_agent 注入到您的类中。
public function isDeviceAllowed($request){ if($this->userAgentValidator->isEnabled()) { return $this->userAgentValidator->isAllowed($request->headers->get('user-agent')); } return true; }
好了,魔法会发生,我们将永远快乐。