я новичок как в Laravel, так и в Stackoverflow, поэтому прошу прощения, если мой вопрос отформатирован неправильно. Любые подсказки относительно этого больш были бы оценены.
Недавно мне удалось реализовать токен-аутентификацию в моем Laravel API с помощью jwt-auth.
Я могу защитить свои маршруты API с помощью промежуточного программного обеспечения jwt-auth, чтобы гарантировать, что конкретный пользователь получил токен (вошел в систему).
Route::group(['middleware' => ['jwt.auth']], function() {
// List Books
Route::get('books', 'BookController@index');
)};
JWT создается в контроллере с именем APILoginController, который я создал, содержащий:
public function login(Request $request)
{
// check the users credentials
$credentials = $request->only('email', 'password');
try {
if (! $token = JWTAuth::attempt($credentials)) {
return response()->json(['error' => 'Invalid Credentials'], 401);
}
} catch (JWTException $e) {
return response()->json(['error' => 'could_not_create_token'], 500);
}
// the users credentials are correct - return web token
$user = Auth::user();
return response()->json(compact('token', 'user')) ;
}
Я добавил поле is_admin в свою пользовательскую таблицу
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->integer('is_admin');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
я надеялся, что смогу использовать это поле для защиты определенных маршрутов от обычного пользователя, где is_admin = 0, и разрешить доступ к ним только администраторам (is_admin = 1). Я понятия не имею, правильный ли это способ сделать это, но это казалось самым простым.
Любая помощь или руководство будут БОЛЬШИМ образом оценены, поскольку я боролся с этим в течение достаточно долгого времени. Большинство руководств, с которыми я сталкиваюсь, похоже, создают еще одну таблицу с ролями, но это кажется немного излишним и сложным для моего уровня навыков и приложения, которое я пытаюсь создать.
С уважением, Мэтью