Php Laravel Passport-/oauth/token生成无效的token
因此,我使用Php Laravel Passport-/oauth/token生成无效的token,php,laravel,laravel-passport,Php,Laravel,Laravel Passport,因此,我使用php-artisan-passport:client创建了一个客户端,当我向oauth/token发出POST请求时,我很感激地得到了一个令牌 然而,当我试图通过将该令牌放在我的头中并转到一个auth:api受保护的路由来使用该令牌时,我得到了401个未经授权的消息 然而,使用不同的路径登录似乎是可行的。当我在api控制器中使用此路由时: Route::post('/login', 'Auth\LoginController@login')->name('login');
php-artisan-passport:client
创建了一个客户端,当我向oauth/token发出POST请求时,我很感激地得到了一个令牌
然而,当我试图通过将该令牌放在我的头中并转到一个auth:api
受保护的路由来使用该令牌时,我得到了401个未经授权的消息
然而,使用不同的路径登录似乎是可行的。当我在api控制器中使用此路由时:
Route::post('/login', 'Auth\LoginController@login')->name('login');
其代码如下:
public function login(Request $request) {
$input = $request->all();
if (Auth::attempt(['email' => $input['email'], 'password' => $input['password'] ])) {
$user = Auth::user();
return [
'success' => true,
'token' => $user->createToken('test')->accessToken
];
}
return [
'success' => false,
'message' => 'unable to authenticate'
];
}
我得到一个在受保护的路由上工作的令牌
我正在使用Postman进行测试,我有标题Authorization:Bearer
和Accept:application/json
。不知道为什么它以一种方式工作,而不是另一种方式
编辑:以下是受保护的路由:
Route::middleware('auth:api')->get('/user', function (Request $request)
{
return $request->user();
});
它使用:
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
在我的例子中,从WHM服务器和函数中删除Lsapi组件。在我的例子中,从WHM服务器和函数中删除Lsapi组件。你们其余的
api
中间件包含什么?我更新了我的问题。你们检查了返回的令牌是否存在于数据库中了吗?此外,您还传入了一个空的scopes,这可能也会影响一些事情。确实如此,但我注意到该令牌的user_id列为null。但是,我用来进行身份验证的客户端有一个与之关联的用户id。您刚刚回答了自己的问题,您需要弄清楚为什么未设置用户id
。其他api
中间件包含什么?我更新了我的问题。您是否检查了数据库中是否存在返回的令牌?此外,您还传入了一个空的scopes,这可能也会影响一些事情。确实如此,但我注意到该令牌的user_id列为null。但是,我用来进行身份验证的客户端有一个与之关联的用户id。您刚刚回答了自己的问题,您需要弄清楚为什么未设置用户id
。感谢您的贡献。请添加上下文,并解释为什么这可能是一个解决方案。如果这样做是有意义的,也请解释如何这样做。实际上,您的回答可能更有用,作为对OP的评论,根据SO指南,可能不被视为完整和正确的回答。一个有用的答案是一个自包含的解决方案,它可以让未来的访问者获得更多的知识,他们可以将这些知识应用到自己的情况中。高质量的信息性答案更有可能被升级,而低质量的答案则有可能被下载,或者被完全删除。感谢您的贡献。请添加上下文,并解释为什么这可能是一个解决方案。如果这样做是有意义的,也请解释如何这样做。实际上,您的回答可能更有用,作为对OP的评论,根据SO指南,可能不被视为完整和正确的回答。一个有用的答案是一个自包含的解决方案,它可以让未来的访问者获得更多的知识,他们可以将这些知识应用到自己的情况中。高质量的信息性答案更有可能被升级,而低质量的答案则有可能被下载,或者被完全删除。