【发布时间】:2014-12-03 02:28:51
【问题描述】:
我正在尝试用服务器端的 slim 和客户端的 angularJS 实现一个简单的授权。为了测试 REST APi,我正在使用一个名为 Rested for Mac 的程序,它允许发送休息调用。
我想交付,一旦授权完成,在每次休息时调用一个 jwt 令牌,然后可以在 slim 中使用它来授权对某些路径的请求。
现在我通过 Rested 传递以下标题和正文:
Accept: */*
Accept-Encoding: gzip, deflate
Content-Type: application/json
Authorization: jwt-test
Accept-Language: de-de
{
"login": "TestLogin",
"password": "TestPassword",
"uuid": "dsfglj45690dfgkl456"
}
而不仅仅是打印出整个标题:
Slim\Http\Headers Object ( [data:protected] => Array ( [Host] => localhost:8888
[Content-Type] => application/json [Content-Length] => 89 [Connection]
=> keep-alive [Accept] => */* [User-Agent] => Rested/2009 CFNetwork/673.4
Darwin/13.4.0 (x86_64) (iMac13%2C2) [Accept-Language] => de-de [Accept-Encoding]
=> gzip, deflate ) )
如您所见,此数组中没有授权。
我也直接用 Firefox 进行了检查,结果相同。 O 可以在 firebug 的请求头中看到授权字符串,但它不在 slimframework 的转储数组中。
有人提示我的问题出在哪里吗?
在此先感谢您的问候
松软
【问题讨论】:
-
如何添加登录标题?您共享的内容看起来像请求正文,而不是标头。另外,顺便说一句,无论是在请求标头中还是在其他地方,以纯文本形式发送密码都是一个真的坏主意。
-
不,我稍后会使用 jwt,isßs 只是为了测试。我只将授权添加到标题中,而不是更多。如您所见,如果是标头对象 Slim\Http\Headers
-
请分享一个代码示例,展示您如何设置这些标头。这样我们就能更好地为您提供帮助。
-
正如我所描述的,我使用 mac 程序进行了测试,该程序通过使用值“jwt-test”定义标题字段“授权”来生成 rest api 调用。第二个测试是在我的 angularjs 应用程序中,我使用拦截器向每个请求添加授权标头:config.headers.Authorization = 'Bearer' + $window.sessionStorage.tokenUUID;
-
我也有类似的问题。你能检查一下stackoverflow.com/questions/64107875/…
标签: rest http-headers authorization slim