我的laravel项目有一个通过auth的API路由。基本中间件是控制器中已验证用户的id。当我在postman中调用它时,它运行良好,当用户名或密码不正确时,我得到401,但在从DuskTestCase扩展的laravel APITest中,不进行验证,因此当用户信息不正确时,我得到500而不是401。然而,通过正确的信息,我有同样的错误,因为auth()是空的。
下面写的,哪一个错了?
api.php路径:
Route::get('/xxxxxx/xxxxxx/xxxxxxx', 'xxxxx@xxxx')->middleware('auth.basic');
APIT试验:
$response = $this->withHeaders(['Authorization' => 'Basic '. base64_encode("{$username}:{$password}")])->get("/xxxxxx/xxxxxx/xxxxxxx");
1条答案
按热度按时间cuxqih211#
您可以在测试中使用
actingAs()
方法进行身份验证。来自文档的示例:
另一个可用于API的示例:
如需了解更多信息:www.example.comhttps://laravel.com/docs/5.1/testing#sessions-and-authentication