2017-01-10 4 views
0

Я строй API, который имеет много пользователей ресурсов, например У меня есть эти таблицы в моей базе данных users, agents, drivers и 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 
} 

Я так смущен, пожалуйста, укажите мне в правильном направлении.

Спасибо!

+0

, что именно вы пытаетесь получить через API ?? – Sona

+0

@SoniyaReddy В api есть все сведения о пользователях и сведениях о драйверах, если у пользователя есть логин, он может видеть его профиль и диск, который несет их вещи (только его данные) и под которым агент является драйвером, и если агент регистрируется в нем можно добавить драйверы, есть несколько агентов на основе места, где можно добавить любое количество драйверов под ними и т. д., –

+0

является ли он драйвером или агентом или пользователем или администратором логин должен быть только одним правильным? основанные на их учетных данных, вам нужно четко показать детали? – Sona

ответ

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')){ 
    ... 
} 

Got Это? вы можете также имели разрешение на любую роль, как:

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

просто искать «LaravelUser ACL ролей и разрешений»

+0

@ Dani Banai спасибо за ваше время, я любопытный новичок в laravel, должен ли я дефинировать все роли в моей модели 'User', –

+0

No вам нужно создать ролевую модель! Просто посмотрите это как начало (part1 to part4): https://laracasts.com/series/whats-new-in-laravel-5-1/episodes/13 –

+0

Большое вам спасибо за то, что я действительно ценю это, Я создаю «API» для «мобильного и веб-приложения», «агенты» будут иметь мобильное приложение, в котором он может войти в «CRUD» «драйверы», где «admin» будет предоставлен с помощью «веб-приложения» 'где он может' CRUD' 'агенты', так как это' API', '' '' '' '' '' '' хранить auth 'агентов и admin', поэтому я должен предоставить' access_token' для агентов (app) и admin (веб) правильно? это где я застрял, я должен сделать аутентификацию агента и модели «Админ» для достижения этого? или моя реализация не хороша? Спасибо –