Une application web typique est principalement apatride en raison de son demande/réponse nature. Le protocole HTTP est le meilleur exemple d'un protocole de type apatride protocole. Mais comme la plupart des applications web ont besoin état afin de tenir le état entre le serveur et le client, les cookies sont utilisés de telle sorte que le serveur peut envoyer un cookie dans chaque réponse au client. Cela signifie que la prochaine demande faite par le client comprendra ce cookie et sera donc reconnue par le serveur. De cette façon, le serveur peut maintenir un session avec le apatride client, connaissant presque tout du fonctionnement de l'application. état mais stocké sur le serveur. Dans ce scénario, à aucun moment le client ne détient état ce qui n'est pas le cas Ember.js travaux.
Dans Ember.js, les choses sont différentes. Ember.js facilite le travail du programmeur parce qu'il détient en effet la état pour vous, dans le client, en connaissant à chaque instant son état sans avoir à faire une requête au serveur pour demander état données.
Cependant, en tenant état dans le client peut aussi parfois introduire des problèmes de concurrence qui ne sont tout simplement pas présents dans apatride situations. Ember.js, cependant, traite également ces questions pour vous ; ember-data est spécifiquement construit dans cet esprit. En conclusion, Ember.js est un framework conçu pour avec état clients.
Ember.js ne fonctionne pas comme une entreprise typique apatride l'application web où le session le état et les cookies correspondants sont presque entièrement gérés par le serveur. Ember.js tient son état entièrement en Javascript (dans la mémoire du client, et non dans le DOM comme certains autres frameworks) et n'a pas besoin du serveur pour gérer la session. Ember.js est donc plus polyvalent dans de nombreuses situations, par exemple lorsque votre application est en mode hors ligne.
Évidemment, pour des raisons de sécurité, il faut une sorte de jeton o clé unique doit être envoyée au serveur à chaque fois qu'une demande est faite afin d'être authentifié . De cette façon, le serveur peut consulter le jeton d'envoi (qui a été initialement émis par le serveur) et vérifier s'il est valide avant de renvoyer une réponse au client.
À mon avis, la principale raison pour laquelle il faut utiliser un jeton d'authentification plutôt que des cookies comme indiqué dans le document FAQ Ember Auth est principalement due à la nature du cadre Ember.js et aussi parce qu'elle s'inscrit davantage dans le cadre de l'approche de l avec état paradigme de l'application web. Le mécanisme des cookies n'est donc pas la meilleure approche pour construire une application Ember.js.
J'espère que ma réponse donnera plus de sens à votre question.
4 votes
Un jeton peut être donné à votre application mobile et stocké dans une variable (par vous) pour une utilisation ultérieure ou enregistré (par vous) via JavaScript dans votre navigateur pour être utilisé dans les requêtes SPA. Un Cookie est généralement utilisé dans un navigateur (par le navigateur).
4 votes
Voir l'article auth0.com/blog/cookies-vs-tokens-definitive-guide écrit en 2016.
0 votes
Le cookie lui-même ne peut pas faire d'authentification. Elle est faite par le stockage du jeton dans le cookie.