Laravel 护照 api 令牌适用于所有人
Laravel passport api token works for all
在 Laravel 6
上使用 passport
并且它与 users
一起工作正常 我想为 admins
设置 passport
我在这里打电话给代理。所以我是这样做的(基于):
Route::middleware('auth:agent')->group(function () {
控制器:
return Auth::guard('agent')->user();
和auth.php:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
'hash' => false,
],
'agent' => [
'driver' => 'passport',
'provider' => 'agents',
],
],
...
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'agents' => [
'driver' => 'eloquent',
'model' => App\Agent::class,
],
],
所以我以用户身份登录,并设置 api 令牌和 运行 这个:
$user = Auth::user();
return response()->json(['success' => $user], $this-> successStatus);
这个 return 我的用户详细信息并且工作正常,然后我使用相同的令牌以管理员身份登录,并且 运行:
return Auth::guard('agent')->user();
它return我代理详情呢!使用与 users
相同的 api_token
。我用 postman
测试了所有内容。它不应该用用户令牌 ret运行 代理详细信息,反之亦然。
好吧,虽然我没有得到任何答案,但我尝试自己解决这个问题,我搜索了很多 none 可用的解决方案。我决定将 token
用作管理员用户 driver
(basic Laravel auth) (agents)
所以我改变了:
'agent' => [
'driver' => 'token', // change passport to token
'provider' => 'agents',
'hash' => true,
],
根据那篇文章制作的 api_token
专栏,这解决了我的问题。我认为 passport
没有改变解决这个问题,你需要设置 token
或 session
才能得到这个。
在 Laravel 6
上使用 passport
并且它与 users
一起工作正常 我想为 admins
设置 passport
我在这里打电话给代理。所以我是这样做的(基于
Route::middleware('auth:agent')->group(function () {
控制器:
return Auth::guard('agent')->user();
和auth.php:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
'hash' => false,
],
'agent' => [
'driver' => 'passport',
'provider' => 'agents',
],
],
...
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'agents' => [
'driver' => 'eloquent',
'model' => App\Agent::class,
],
],
所以我以用户身份登录,并设置 api 令牌和 运行 这个:
$user = Auth::user();
return response()->json(['success' => $user], $this-> successStatus);
这个 return 我的用户详细信息并且工作正常,然后我使用相同的令牌以管理员身份登录,并且 运行:
return Auth::guard('agent')->user();
它return我代理详情呢!使用与 users
相同的 api_token
。我用 postman
测试了所有内容。它不应该用用户令牌 ret运行 代理详细信息,反之亦然。
好吧,虽然我没有得到任何答案,但我尝试自己解决这个问题,我搜索了很多 none 可用的解决方案。我决定将 token
用作管理员用户 driver
(basic Laravel auth) (agents)
所以我改变了:
'agent' => [
'driver' => 'token', // change passport to token
'provider' => 'agents',
'hash' => true,
],
根据那篇文章制作的 api_token
专栏,这解决了我的问题。我认为 passport
没有改变解决这个问题,你需要设置 token
或 session
才能得到这个。