Php 如何对多个模型(如用户、代理、管理员等)进行身份验证

Php 如何对多个模型(如用户、代理、管理员等)进行身份验证,php,laravel,api,laravel-5.3,laravel-passport,Php,Laravel,Api,Laravel 5.3,Laravel Passport,例如,我正在构建一个拥有许多资源用户的API 我的数据库中有这些表用户,代理,驱动和管理员 如果他们想访问资源或检查他们的详细信息,他们应该登录查看,那么我该怎么做呢 我是否应该选择laravel passport并在所有型号中执行此操作: <?php namespace App; use Laravel\Passport\HasApiTokens; //for agents, drivers, admin use Illuminate\Notifications\Notifiabl

例如,我正在构建一个拥有许多资源用户的API 我的数据库中有这些表
用户
代理
驱动
管理员

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

我是否应该选择
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
}
没问题

只需使用角色

您将有一个用户模型,将处理所有的身份验证。。。 对于每个用户,您将分配一个角色“代理”

然后举例来说:

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

你到底想通过api获得什么???@SoniyaReddy api拥有所有用户详细信息和驱动程序代理详细信息,如果用户登录,他可以看到他的个人资料和携带他们物品的驱动器(仅他的详细信息)以及驱动程序所在的代理,如果代理登录,他可以添加驱动程序,根据位置有多个代理,如何在它们下面添加任意数量的驱动程序等等,无论他是驱动程序还是代理,还是用户或管理员登录,都必须只有一个对吗??根据他们的凭证,你需要显示详细信息,对吗???@Soniya Reddy不,数据库中有所有模型,所有模型都是必需的,是驱动程序和代理以及用户和管理员@Dani Banai谢谢你的时间,我在laravel是一个新手,我是否应该取消我的
用户
模型中的所有角色,不,你需要创建角色模型!作为一个开始(第1部分到第4部分):非常感谢您的时间,我非常感谢,我正在为
移动和web应用
构建一个
API
代理
将拥有移动应用程序,他可以登录
CRUD
驱动程序
作为
管理员
将获得
web应用程序
,他可以
CRUD
代理,因为这是一个
API
没有
会话
来存储
代理和管理员
所以我应该为代理(app)和管理员(web)提供访问令牌,对吗?这就是我被卡住的地方,我应该使代理和“管理”模型可验证以实现这一点?还是我的执行不好?非常感谢。