Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Quels sont les avantages de l'utilisation d'inertie pour l'authentification sur les API traditionnelles


Quels sont les avantages de l'utilisation d'inertie pour l'authentification sur les API traditionnelles


L'utilisation d'inertie pour l'authentification par rapport aux API traditionnelles offre plusieurs avantages distincts principalement orientés vers la simplification du développement, l'amélioration de l'expérience utilisateur et la complexité des applications Web modernes.

Gestion de l'authentification simplifiée

Un avantage clé de l'inertie est qu'il élimine la nécessité de gérer des jetons d'authentification distincts ou des systèmes OAuth, comme requis dans les configurations typiques de SPA (application à page unique). Dans un spa traditionnel basé sur l'API, le frontend doit gérer les jetons ou les clés API pour authentifier les demandes du backend, nécessitant souvent des mesures complexes de gestion de l'état et de sécurité telles que la gestion de rafraîchissement des jetons. L'inertie, cependant, tire parti du système d'authentification basé sur la session côté serveur (couramment utilisé dans des cadres Web comme Laravel) directement. Cela signifie que les portes d'authentification, les middleware et les politiques fonctionnent sur le backend comme ils le font dans les applications monolithiques, sans aucune manipulation de jeton supplémentaire du côté client. Le développeur peut donc s'appuyer sur le cadre d'authentification robuste du backend de manière transparente sans avoir besoin de le dupliquer ou de le réinventer pour le frontend.

Aucune exigence de couche API

Avec les API traditionnelles, le frontend interagit avec le backend exclusivement via des points de terminaison API RESTFul ou GraphQL. Cela nécessite non seulement la création et le maintien de ces API, mais aussi la gestion de la sécurité, du versioning, des tests et de la documentation de ces API. L'inertie supprime la nécessité de créer une couche API distincte en émettant des réponses backend sous forme de données de composants JavaScript. Les contrôleurs backend interrogent la base de données et les données de retour que l'inertie utilise pour rendre les pages directement dans des cadres Frontend comme Vue, React ou Svelte. Cela réduit les frais généraux, accélère le développement et simplifie considérablement l'architecture, en particulier pour les projets de petite à moyenne taille qui ne nécessitent pas plusieurs consommateurs de la même API.

Meilleure productivité des développeurs et complexité réduite

L'utilisation d'inertie signifie que le développeur n'est pas nécessaire pour configurer des complexités de flux d'authentification côté client telles que la rafraîchissement, le stockage et la gestion des jetons. Cela libère les développeurs pour se concentrer sur la construction des fonctionnalités plutôt que sur la lutte avec la gestion de l'état Frontend ou la duplication de la logique de contrôle d'accès. Étant donné que Laravel ou le Framework du serveur gère les stratégies d'accès et l'authentification, le frontend peut s'appuyer sur cette seule source de vérité. Cette approche réduit les bogues liés aux inadéquations client-serveur dans la logique de contrôle d'accès et élimine le besoin de bibliothèques de gestion d'État comme Redux ou Vuex, sauf si vous avez absolument nécessaire pour d'autres raisons. Par conséquent, les cycles de développement sont plus courts et les applications atteignent la production plus rapidement.

Expérience utilisateur améliorée

Les applications traditionnelles de serveur provoquent des recharges de page complète lors de la navigation entre les pages, ce qui peut se sentir lent et perturbateur pour les utilisateurs habitués au comportement d'application (SPA). Les API permettent le développement du spa mais nécessitent une architecture côté client significative. Inertia obtient une expérience utilisateur de type SPA sans une API complète en interceptant les demandes de navigation et ne réinstallez que partiellement les pages avec de nouvelles données backend. Il en résulte des transitions rapides et lisses et une sensation de frontend moderne tout en préservant les avantages du référencement en raison des capacités de rendu côté serveur. L'utilisateur bénéficie d'une rétroaction instantanée et d'une navigation fluide sans la complexité de la gestion complète de l'État de spa.

Authentification basée sur la session sans complications COR

Étant donné que l'inertie fonctionne avec des contrôleurs rendetés backend sur le même domaine que le code frontal, il évite les problèmes de partage de ressources croisées (CORS) communs avec l'authentification basée sur l'API. Les API traditionnelles hébergées séparément nécessitent une configuration CORS soigneuse et des mesures de sécurité supplémentaires pour l'authentification transversale. L'architecture d'Inertia contourne ces problèmes en travaillant dans le contexte de session côté serveur existant, ce qui entraîne une configuration moindre et une gestion de session plus sécurisée hors de la boîte.

Intégration de backend et de frontend transparente

Inertia intègre étroitement les cadres JavaScript Frontend avec le routage côté serveur et la logique du contrôleur. L'avantage est que le code frontal et le code backend coopère étroitement, réduisant l'inadéquation d'impédance généralement rencontrée lors de la construction d'API découplées. Cette intégration facilite l'état d'application cohérent, l'authentification et l'autorisation unifiées et les bases de code plus propres et plus maintenables. Il rationalise également la gestion des données car les contrôleurs servent des données directement aux vues frontales sans intermédiaires.

Économies de coûts et de ressources

Le développement et le maintien d'API sont à forte intensité de ressources, impliquant plusieurs couches de test, de version, de sécurité et de documentation. En éliminant les API, l'inertie réduit ces frais généraux et la complexité du développement, ce qui permet des dépenses de développement plus rapides et réduites. Les entreprises bénéficient d'avoir accès à une livraison de fonctionnalités plus rapide et à une maintenance plus simple sans compromettre les capacités des spas.

Quand préférer l'inertie aux API traditionnelles

L'inertie convient particulièrement lors de la création d'applications où les équipes backend et frontend se chevauchent ou lors de l'utilisation de Laravel ou de frameworks similaires avec de solides capacités côté serveur. Il excelle dans les projets avec l'authentification des utilisateurs typiques, la gestion de session et les besoins de rendu côté serveur et lorsqu'une API n'est pas requise pour plusieurs clients externes comme les applications mobiles ou les intégrations tierces. Pour les projets nécessitant des microservices étendus, des API multi-clients ou une authentification spécialisée basée sur des jetons, les API traditionnelles peuvent toujours être plus appropriées.

***

En résumé, les avantages de l'utilisation d'inertie pour l'authentification par rapport aux API traditionnels comprennent:

- Authentification simplifiée à l'aide de la gestion de session côté serveur sans frais généraux de jeton.
- L'élimination de la nécessité de construire, de sécuriser et de maintenir une couche API séparée.
- Réduction de la complexité du frontend et de la gestion de l'État, permettant un développement plus rapide et plus productif.
- Expérience utilisateur lisse et spa sans rechargement pleine page.
- Évitement des complications liées aux COR dans l'authentification.
- L'intégration serrée par étendue de backend conduisant à une logique cohérente et à moins de redondance.
- Coûts et ressources de développement et de maintenance réduits.
- Idéal pour les applications étroitement associées à des cadres backend comme Laravel lorsqu'aucun consommateur d'API externe n'existe.

Ces avantages offrent une approche rationalisée, sécurisée et moderne de l'authentification et de la communication contre le frontage, faisant de l'inertie une alternative attrayante aux architectures de spa traditionnelles centrées sur l'API.