Symfony 2.3 getRequest() - >标头未显示授权承载令牌

Pat*_*ign 5 authorization token symfony

我将授权:Bearer {Token}作为HTTP请求传递给我的Symfony Rest Controller.

我的请求:

GET /app_dev.php/api/members HTTP/1.1
Host: localhost
Authorization: Bearer 123456789
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
Run Code Online (Sandbox Code Playgroud)

我的控制器里面:

$this->getRequest()->headers;
Run Code Online (Sandbox Code Playgroud)

出于某种原因,当我使用Symfony的Request方法时,我的控制器无法使用Authorization标头.当我使用PHP的getallheaders()时,Authorization标头会按预期显示.为什么Symfony没有看到它?

谢谢

Bor*_*éry 17

它最有可能被Apache剥夺.Bearer不是一个已知的方案,它是一种专有的.

因此,您要么使用自定义标题,X-Bearer-Token: 123456789要么尝试在您的标题中添加此重写条件.htaccess

RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
Run Code Online (Sandbox Code Playgroud)

  • 抱歉,我将重写条件放在.htaccess的底部,没有结果,但是当我将代码放在.htaccess的顶部时,它确实起作用。谢谢你的帮助。 (2认同)