Je réponds enfin à ma propre question. J'espère que cela aidera quelqu'un qui est confronté au même problème.
L'authentification JWT peut être réalisée avec le passeport Laravel 5.3, il suffit de suivre les étapes suivantes :
OU suivez les étapes suivantes :
- composer require laravel/passport
- ajouter
Laravel\Passport\PassportServiceProvider::class,
aux fournisseurs de votre application
- php artisan migrate
- php artisan passport:install
- Ajouter
HasApiTokens
à votre modèle d'utilisateur
- Passport::routes() ; dans AppServiceProvider
- Configurer le pilote api pour le passeport
Une fois cela fait, créez un UserController et ajoutez-y les méthodes suivantes :
public function auth(Request $request)
{
$params = $request->only('email', 'password');
$username = $params['email'];
$password = $params['password'];
if(\Auth::attempt(['email' => $username, 'password' => $password])){
return \Auth::user()->createToken('my_user', []);
}
return response()->json(['error' => 'Invalid username or Password']);
}
public function index(Request $request)
{
return $request->user();
}
Dans routes/api.php, ajoutez les routes suivantes :
Route::post('auth', 'UserController@auth');
Route::group(['middleware' => 'auth:api'], function(){
Route::resource('user', 'UserController@index');
});
Faites maintenant une demande POST à http://localhost:8000/auth
avec l'adresse email et le mot de passe comme indiqué dans la capture d'écran ( http://pix.toile-libre.org/upload/original/1483094937.png ) Cela vous permettra d'obtenir le accessToken vous pouvez utiliser ce jeton pour effectuer d'autres requêtes dans votre application à l'aide de l'option Authorization
et Bearer XXX
où xxx est le accessToken que vous avez reçu de la part de /api/auth point final.
Maintenant, faites une demande GET à /api/user
avec le Authorization
et la valeur du jeton, cela renverra les détails de l'utilisateur authentifié. (ex : http://pix.toile-libre.org/upload/original/1483095018.png )
J'ai également publié ces étapes sur mon blog à l'adresse suivante http://chatterjee.pw/larvel-passport-jwt-authentication/
J'espère que cela vous aidera !