【发布时间】:2021-06-21 16:30:20
【问题描述】:
我最近从 laravel 的圣所更新到了护照;有一个测试让我很困扰。 在 sanctum 中 PersonalAccessToken 模型下有这个方法可以找到令牌并返回令牌(如果存在)。 我似乎在文档或在线上找不到类似的东西。 我通过断言 $user->tokens 不为空来验证测试......但我希望验证我从登录控制器返回的令牌确实是一个令牌;不仅仅是创造;
提前谢谢...
登录测试
public function user_can_login()
{
//$this->withoutExceptionHandling();
$user = User::factory()->create();
$url = route('api.v1.auth.login', [
'email' => $user->email,
'password' => 'password'
]);
$res = $this->jsonApi()
->post($url)
->assertStatus(200);
$token = $res->json(['access_token']);
$this->assertNotEmpty($user->tokens);
}
authcontroller 中的登录方法
public function login(Request $request)
{
$request->validate([
'email' => 'required|email',
'password' => 'required',
]);
$credentials = $request->only(['email', 'password']);
if (Auth::attempt($credentials)) {
$user = Auth::user();
$access_token = $user->createToken('laravel-api.local')->accessToken;
return response()->json(['access_token' => $access_token], 200);
} else {
return response()->json(['error' => 'Unauthorized'], 401);
}
}
pues:不知道我为什么要写代码,只是为了参考我在做什么
【问题讨论】:
标签: laravel phpunit token laravel-passport laravel-sanctum