gpt4 book ai didi

php - 测试基本授权

转载 作者:可可西里 更新时间:2023-11-01 13:16:00 26 4
gpt4 key购买 nike

我想测试我的基本授权保护页面。 unauthorization 测试工作正常。但是我在授权登录上遇到了困难,因为我不知道如何在测试中设置标题。

我找不到提示,如何在 $this->call() 上设置 header 。我能找到的唯一信息是:

$this->call($method, $uri, $parameters, $cookies, $files, $server, $content);

并且缺少标题。

如何在 Laravel 上轻松测试基本身份验证。具体:如何为测试请求设置基本授权 header ?

我目前拥有的:

class ExampleTest extends TestCase {
public function test401UnauthorizedOnMe() {
$response = $this->call('GET', '/api/me');
$this->assertResponseStatus( 401);
}

public function testCorrectLoginOnMe() {
// http://shortrecipes.blogspot.de/2009/12/testing-basic-http-authentication-using.html
//send header with correct user and password i.e.
////YWRtaW46YWRtaW4xMg== is equal to base64_encode( "admin:admin12")
$this->request->setHeader( 'Authorization','Basic YWRtaW46YWRtaW4xMg==');
$response = $this->call('GET', '/api/me');
$this->assertResponseStatus(200);
}
}

我尝试了 $this->$request->setHeader(); 但是我只得到一个错误:

1) ExampleTest::testCorrectLoginOnMe
ErrorException: Undefined property: ExampleTest::$request

最佳答案

通过 HTTP authentication with PHP 找到了解决方案.这可以在 $this->call()$server 参数中使用。

这是我的工作函数:

public function testCorrectLoginOnMe() {
// call( $method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null)
$this->call('GET', '/api/me', [], [], [], ['PHP_AUTH_USER' => 'admin', 'PHP_AUTH_PW' => 'admin12']);
$this->assertResponseStatus( 200 );
}

关于php - 测试基本授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31952678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com