Php 如何对多个模型(如用户、代理、管理员等)进行身份验证
例如,我正在构建一个拥有许多资源用户的API 我的数据库中有这些表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
用户
,代理
,驱动
和管理员
如果他们想访问资源或检查他们的详细信息,他们应该登录查看,那么我该怎么做呢
我是否应该选择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)提供访问令牌,对吗?这就是我被卡住的地方,我应该使代理和“管理”模型可验证以实现这一点?还是我的执行不好?非常感谢。