当前位置: 首页 > 知识库问答 >
问题:

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

梁巴英
2023-03-14

我将授权:承载{令牌}作为HTTP请求传递给我的SymfonyRest控制器。

我的请求:

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

在我的控制器内:

$this->getRequest()->headers;

由于某种原因,当我使用Symfony的请求方法时,授权标头对我的控制器不可用。当我使用PHP的getallheaders()时,授权头将按预期显示。你知道为什么Symfony没有看到吗?

谢谢

共有3个答案

洪俊能
2023-03-14

Symfony正在使用php全局变量$_SERVER创建请求-

颛孙钱青
2023-03-14

这个问题和公认的答案之间似乎存在脱节。如果授权标头可用于PHP的getallheaders(),那么Apache显然没有剥离它。我猜这个问题与Symfony的使用有关$这个-

$this->getRequest()->headers->all();

或者更具体地说:

$this->getRequest()->headers->get('Authorization');
乐正涵意
2023-03-14

它很可能被Apache剥离Bearer不是一个已知的方案,它是一种专有的方案。

因此,您可以使用自定义标头,如X-Beerer-Token: 123456789,也可以尝试在您的. htaccess中添加此重写条件

RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
 类似资料:
  • 我目前正在客户端应用程序上使用和。我用另一个请求回调()运行一个axios请求(),在第一个请求的响应中,我收到一个新的令牌。我尝试在回调的headers载体中设置这个新内标识。这不起作用:在回调()时,没有设置新的令牌,并且在头中没有设置更多的授权承载。 你知道问题出在哪里吗?

  • 我正在做一个带有用户名和密码的登录屏幕。如果登录成功,服务器将返回令牌。然后,我试图调用另一个函数来获取用户信息,但没有传递授权标头。我正在邮递员上尝试我的服务器方法,它工作得很好,所以我相信问题出在邮件头上。有人能告诉我该怎么做吗? 请注意,result.access_token!=null是true.并且我成功地拿回了令牌。但是它不会被再次传递到第二个url(info)

  • 当一个人试图使用azure AD承载令牌访问我们的系统时,这个获取和缓存资源令牌的工作流程是不存在的。 所以我的问题是,我如何使用承载令牌来启用它?如何才能像使用OpenIDConnect一样请求额外的资源令牌?是否可以使用ADAL从承载令牌获取授权代码?

  • 这是云运行中的bug,还是我们需要做一些不同的事情来获得完整的承载令牌?

  • 我已经编写了一个云函数,该函数接收一个Base64字符串并将其传递到Google Cloud Vision API中,我还在客户端上编写了一个函数,该函数通过HTTP调用Firebase云函数。 虽然数据可以很好地从客户端传递到云功能,但服务器对Google Vision API的请求不起作用。我得到一个状态码错误。 我很确定这与授权承载令牌有关,因为在shell中使用环境变量运行它就可以了。顺便

  • 嘿,我想弄清楚如何为REST API POST调用使用OAuth授权令牌。 文件规定: 如果发生此错误,您的应用程序可以通过重新运行相应的流来请求新的访问令牌。 目前我的VB. net代码是这样的: 我不断收到一个错误:远程服务器返回一个错误:(401)未经授权。 我在下面的帖子中发现了这一点: Yammer API要求OAuth数据位于标头中。如果您查看他们获取数据的示例,您将看到请求如下所示。