Bonjour,

Je voudrais développer un site web avec une api full REST en back.
Pour faire les choses correctement il faut identifier l'utilisateur (normal).
Je ne passe pas par une session. Donc je voudrais signer chaque appel.
Ma signature serait calculée avec un algo Hmac (avec SHA256 ou suppérieur on s'en fou un peu), avec comme data le verbe HTTP concaténé avec l'URI de la requête et comme clef le mot de passe Haché en sha256 (enfin le mot de passe concaténé avec un salt fixe et le login de l'utilisateur).

J'envois la signature dans les headers HTTP avec le login utilisateur.
Comme ca du coté serveur je récupère l'utilisateur je vais cherché le hache du mot de passe (que j'ai en BDD) et je refait le même calcule pour avoir la signature et je compare avec celle qui est dans les header HTTP si c'est les même alors c'est l'utilisateur qui l'a envoyé.

Mon problème c'est que du coté client, il faut que je stock mon hash de mot de passe. Et c'est la que je suis pas trop contant. C'est pas terrible si je stock ca en JS parce que si quelqu'un à accès à ce hash il peut signé des requêtes à la place de l'utilisateur...

Vous avez une idée de comment faire mieux ?

Je me disait que pour limiter les dégâts je mettrais bien un token. La clef pour signé ne serais plus le mot de passe haché mais un hache du token concaténé avec le hache du mot de passe
Comme ca si un méchant chope le hache il pourra juste se faire passer pour l"utilisateur pour quelques minutes (en fonction de la durée du token).