0

多くのリソース ユーザーを持つ API を構築しています。たとえば、データベースにこれらのテーブルがありますusersagentsdriversおよびadmin

リソースにアクセスしたい場合、または詳細を確認したい場合は、ログインして確認する必要があります。

laravel passportすべてのモデルでこれを行う必要があります:

<?php

namespace App;

use Laravel\Passport\HasApiTokens;  //for agents, drivers, admin
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable  
{
    use HasApiTokens, Notifiable; //for agents, drivers, admin
}

私は今とても混乱しています。正しい方向に向けてください。

ありがとう!

4

1 に答える 1

1

問題なし!

ロールを使用するだけ!!!

すべての AUTH を処理する 1 つのユーザー モデルが作成され、各ユーザーに「エージェント」ロールが割り当てられます。

次に例を示します。

if (Auth::user()->hasRole('agent')){
   ....
}else if( Auth::user()->hasRole('driver')){
   ....
}else if( Auth::user()->hasRole('admin')){
   ...
}else if( Auth::user()->hasRole('support')){
   ...
}

とった?次のような任意の役割の許可を取得することもできます。

public function hasPermission(Permission $permission)
{
    return $this->hasRole($permission->roles);
}

「LaravelUser ACL Roles and Permissions」を検索するだけです

于 2017-01-10T10:17:17.777 に答える