0

我正在构建一个具有许多资源用户的 API,例如我的数据库中有这些usersagentsdriversadmin

如果他们想访问资源或检查他们的详细信息,他们应该登录查看,我该怎么做

我是否应该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 的用户模型......并且您将为每个用户分配一个角色“代理”

然后例如:

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 角色和权限”

于 2017-01-10T10:17:17.777 回答