OAuth 2
Mejor sistema para la validación de peticiones para acceder a recursos de nuestra API.. En el caso de las APIs, al ser stateless, no hay manera de mantener sesiones de los usuarios o validar sus credenciales.
Para esto existe OAuth que es un sistema que permite, no solo validar que quien haga la petición sea un usuario sino que para clientes externos exista la manera de que consuman la API como si fueran usuarios.
Existen diferentes maneras en que funciona OAuth, entre ellos el Authorization token,
https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2
https://solidgeargroup.com/oauth2-protocolo-de-autorizacion?lang=es
Laravel Passport - API Authentication
Dependencia propia de Laravel que permite fácilmente realizar autenticación por medio de OAuth 2.
Descargar paquete
composer require laravel/passport
Registrar el service provider en config/app.php
Laravel\Passport\PassportServiceProvider::class,
Nota: Desde Laravel 5.5 no es necesario registrar el service provider
Correr migraciones de Passport
php artisan migrate
If you are not going to use Passport's default migrations, you should call the Passport::ignoreMigrations method in the register method of your AppServiceProvider. You may export the default migrations using php artisan vendor:publish --tag=passport-migrations.
Para mongodb, personalizar migraciones usando Jenseggers Schema
use Jenssegers\Mongodb\Schema;
Schema::create('password_resets', function ($collection) {
$collection->string('email')->index();
$collection->string('token');
$collection->timestamp('created_at')->nullable();
});