Laravel (5.7) Авторизация
Разница между аутентификацией и авторизацией
Прежде чем углубляться в изучение процесса авторизации в Laravel, давайте разберемся в разнице между аутентификацией и авторизацией.
При аутентификации система или веб-приложение идентифицируют своих пользователей с помощью предоставленных ими учетных данных. Если он обнаруживает, что учетные данные действительны, они аутентифицированы, или же они не являются.
При авторизации система или веб-приложение проверяют, могут ли аутентифицированные пользователи получить доступ к ресурсам, к которым они пытаются получить доступ, или сделать запрос. Другими словами, он проверяет их права и разрешения на запрошенные ресурсы. Если он обнаруживает, что они могут получить доступ к ресурсам, это означает, что они авторизованы.
Таким образом, аутентификация включает проверку достоверности учетных данных пользователя, а авторизация включает проверку прав и разрешений для ресурсов, которые имеет аутентифицированный пользователь.
Механизм авторизации в Laravel
Laravel предоставляет простой механизм авторизации, который содержит два основных способа: Gates и Policies .
Написание ворот и политики
Гейтс используется для определения, авторизован ли пользователь для выполнения определенного действия. Как правило, они определяются в App / Providers / AuthServiceProvider.php с использованием Gate Gate. Ворота также являются функциями, которые объявлены для выполнения механизма авторизации.
Политики объявляются в массиве и используются внутри классов и методов, которые используют механизм авторизации.
В следующих строках кода объясняется, как использовать Gates и Policies для авторизации пользователя в веб-приложении Laravel. Обратите внимание, что в этом примере функция загрузки используется для авторизации пользователей.
<?php
namespace App\Providers;
use Illuminate\Contracts\Auth\Access\Gate as GateContract;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
class AuthServiceProvider extends ServiceProvider{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
];
/**
* Register any application authentication / authorization services.
*
* @param \Illuminate\Contracts\Auth\Access\Gate $gate
* @return void
*/
public function boot(GateContract $gate) {
$this->registerPolicies($gate);
//
}
}
Предыдущая: Аутентификация Laravel (5.7)
Далее: Laravel (5.7) Шифрование
Новый контент: Composer: менеджер зависимостей для PHP , R программирования