我正在使用Laravel密室创建可用于身份验证API请求的API令牌,但是当我创建令牌并使用纯文本令牌对邮递员的请求进行身份验证时,我总是会得到401。
这是我的终点:
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
我生成这样的令牌:
$user = $request->user();
$abilities = [];
if ($request->read) $abilities[] = 'data:read';
if ($request->write) $abilities[] = 'data:write';
$token = $user->createToken($request->name, $abilities);
return response([
'token' => $token->plainTextToken,
'tokens' => $user->tokens
],201);
我确实拿回了palintext令牌,但是当我在邮递员中使用它时会失败
Bearer 118586|IgKEMCTQq85Lb6k1km6HrewBo3wUS23OuTNHj13i
我在我的API组中使用了这种中间件
EnsureFrontendRequestsAreStateful::class
我将其关闭,但没有任何变化。
有人可以帮忙吗?
答案 0 :(得分:0)
对于面临此问题的任何人,
您必须将token
sanctum
config/auth.php
更改为guards => api => driver
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'sanctum',
'provider' => 'users',
'hash' => false,
],
],