У меня есть сайт, предоставляющий API для двух разных сайтов.
Пример:
merchant.mywebsite.com (продавец)
mywebsite.com (обычные пользователи)
Моя модель пользователя:
Я использую полиморф для разных типов пользователей, userable_id определяет тип пользователей, будет иметь пользователей Admin, Merchant и Normal, у всех есть доступ к 3 различным сайтам.
class User extends Authenticatable implements Auditable
{
public function userable()
{
return $this->morphTo();
}
}
API-маршрут:
Route::namespace('Api\V1')->prefix('v1')->group(function () {
Route::post('login', 'LoginController@login');
Route::post('signup', 'LoginController@signup');
Route::group(['middleware' => 'auth:api'], function() {
Route::get('user', 'LoginController@user');
Route::get('logout', 'LoginController@logout');
});
});
Я хотел бы поделиться одинаковыми функциями аутентификации для вызова API для Торговых и Обычных пользователей, есть ли способ сделать это?
Например, всем им нужно будет авторизоваться по одному и тому же маршруту:
mywebsite.com / api / v1 / login, но перенаправляется на соответствующие сайты после входа в систему и токена.
Нужно ли указывать или создавать пользовательский столбец для определения типа пользователя в oauth?
** Кстати, я использую Laravel Passport, и все 3 сайта находятся в разных репозиториях.