Lexik vous présente aujourd’hui LexikJWTAuthenticationBundle, destiné à vous aider à mettre en place rapidement un système d’authentification entre votre API REST Symfony2 et d’éventuels clients Javascript (AngularJS, Ember.js, Backbone.js) ou mobiles.
Contexte
Les bonnes ressources concernant la mise en place d’une API REST Symfony2 ne manquent pas :
- les incontournables bundles FOSRestBundle, JMSSerializerBundle, NelmioApiDocBundle
- et de nombreux articles comme ceux de Xavier Lacot, celui de William Durand ou celui de Giulio De Donato entre autres
Mais peu d’informations claires sont disponibles sur l’authentification auprès d’une telle API. Et les stratégies dans ce domaine ne manquant pas, il va falloir faire un choix… Et chez Lexik on a choisit le petit standard qui monte : le Json Web Token (JWT).
Pourquoi JWT ?
Les arguments en faveur de cette méthode sont nombreux : stateless, cross-domain, SPA et mobile ready, standardisé, testé et approuvé par une large communauté notamment AngularJS.
De plus, des projets PHP existent déjà pour nous faciliter le travail, notamment l’excellente libraire namshi/jose dont nous allons nous servir.
Bref, revenons au sujet de l’article ! Après l’avoir testé et mis en place sur plusieurs projets, nous sortons donc aujourd’hui le LexikJWTAuthenticationBundle.
Installation et configuration
Voir la marche à suivre indiquée dans le README du projet github.
Exemple d’utilisation avec AngularJS
Voir l’excellent post sur le blog de Auth0.
Test
Un projet sandbox est aussi disponible pour vous permettre de tester rapidement le système.