如何验证用户,代理,管理员等多个模型

时间:2017-01-10 05:22:59

标签: php laravel api laravel-5.3 laravel-passport

我正在构建一个拥有许多资源用户的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
}

我现在很困惑,请指出正确的方向。

谢谢!

1 个答案:

答案 0 :(得分:1)

没问题!

只需使用角色!!!

您将拥有一个处理所有AUTH的用户模型... 并为每个用户分配一个角色&#39;代理商

然后例如:

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);
}

只搜索&#34; LaravelUser ACL角色和权限&#34;