我尝试通过RESTful API结合CouchDB和Httpful对用户进行身份验证。
客户端将用户的凭据发送到我的服务器,服务器将其转发到CouchDB服务器。
当我
var_dump
我的服务器上的身份验证功能:
public function authenticate($request, $response)
{
$username = $request->getParsedBody()['username'];
$password = $request->getParsedBody()['password'];
$uri = "http://localhost:5984/_session";
$sessionToken = \Httpful\Request::post($uri)
->sendsJson()
->body('{"name":"'.$username.'", "password":"'.$password.'"}')
->send();
$cookie = $sessionToken->headers->headers[6];
return $response->withHeader('Set-Cookie', $cookie);
}
响应对象:
object(Httpful \ Response) # 56(13) {
["body"] => object(stdClass) # 58(3)
...
["raw_body"]
...
["headers"] => object(Httpful \ Response \ Headers) # 57(1) {
["headers": "Httpful\Response\Headers": private] => array(6) {
...
["set-cookie"] => string(85)"AuthSession=abc123; Version=1; Path=/; HttpOnly"
}
}
["raw_headers"]
...
["code"]
...
}
Cannot access private property Httpful\Response\Headers::$headers
我想知道如何访问
Set-Cookie
属性。我在网上浏览了这个问题,不幸的是,似乎只有我一个人面临这个特殊的问题。
我只需要将这两行添加到我的身份验证控制器中:
$myArray = array_values($sessionToken->_parseHeaders($sessionToken->raw_headers));
$cookie = $myArray[5];
_parseHeaders
我在Httpful的API文档中找到了它,并将其与
array_values