Bonjour,
Je tente de créer un site qui nécessite une authentification.
Je souhaite aussi que ce site soit sur le modèle Single Page Application, ou tout du moins, que certaines parties le soient.
Côté serveur, toute la sécurité, permission, intelligence sont gérées par la base de données.
Chaque utilisateur dispose de son propre compte de connexion à la base de données.
C'est à dire que lorsqu'un utilisateur appelle l'API "api/products/5", il faut que l'accès à la base de donnée se fasse avec son propre login/pass.
Habituellement, pour gérer ça, j'utilise une variable de session : je l'initialise à la connexion de l'utilisateur avec ses login/pass, puis dans chaque fonction où je dois utiliser son login/pass, j'ai juste à rappeler la session.
Seulement :
- Les Web API sont sensées être "stateless" : donc pas de session disponible en standard
- D'après les articles que j'ai lu, qui expliquent comment activer les session sur un tel projet, je risque de me heurter à de lourds problèmes de performances, car qui dit session, si que les accès sont traités séquentiellement, par session. Ceci peut être gênant si dans ma page de lance une API qui met beaucoup de temps à retourner une réponse, car toutes les autres actions de l'utilisateur sont mises en attente et ne seront traitées que lorsque cette dernière aura terminé.
J'ai essayé de me documenter sur les différentes manières d'authentifier un utilisateur compatibles avec Web API, mais je n'arrive pas à comprendre comment ça marche.
Est-ce que vous connaissez un tuto ou exemple "simple mais pas trop" de connexion (une page avec login + pass, si possible avec une authentification à trois facteurs - genre Google Auth), puis des appels à des Web API dans lesquels on sait retrouver qui est connecté ?
Partager