Je ne discuterai pas d'oauth ici pour l'instant, je veux d'abord comprendre jwt
Je ne comprends pas très bien ces deux concepts : vérification et conservation des connexions
Je donne actuellement aux clients Android et iOS une clé secrète, puis mon serveur utilise également ce secret
Ensuite, les paramètres du client tels que l'horodatage, le nom occasionnel, etc. correspondent à la clé que je leur ai donnée. Plusieurs paramètres sont cryptés dans un seul signe de paramètre
.est ensuite transmis ensemble au serveur, puis le serveur crypte les premiers paramètres ainsi que le mot de passe du serveur, et détermine enfin s'il est égal au dernier signe de paramètre
envoyé par le client.Mais je pense maintenant que la vérification ci-dessus que j'ai faite semble seulement prouver que le client de cette requête connaît la clé secrète de mon serveur, ce qui signifie que cette requête est autorisée par mon serveur
Mais je ne sais toujours pas si l'utilisateur s'est connecté, j'ai donc demandé au client de m'ajouter un jeton de paramètre. Si l'utilisateur demande l'interface de connexion et se connecte avec succès, j'enregistrerai la session dans Redis. un mois, puis Return token=sessionid, laissez-le être stocké dans le client et apportez-le-moi la prochaine fois. Si je l'obtiens et que je peux trouver cette session dans Redis, cela prouvera qu'il est connecté
.De plus, quelqu'un en ligne a dit qu'il s'agissait d'un jwt personnalisé, n'est-ce pas ?
Je ne sais pas quelle est la plus grande différence entre ce que j'ai fait et jwt
Par exemple, ma méthode s'appuie sur l'identifiant de session pour déterminer le statut de connexion de l'utilisateur.
Jwt J'ai lu les informations pendant un moment et il semble qu'après avoir émis le jeton au client, le serveur ne semble pas enregistrer le jeton. Ensuite, après l'arrivée des paramètres du client, il semble que ce ne soit que la première étape. ma propre méthode (est-ce égal à signer après avoir crypté plusieurs paramètres et clés ?) Mais de nombreuses informations semblent indiquer que cela peut déjà prouver la connexion. Si tel est le cas, ma méthode est-elle redondante et utilise-t-elle une session pour déterminer si elle doit se connecter. dans ?
https://jwt.io/
L'une des caractéristiques de JWT est qu'il est apatride et qu'il n'y a aucune notion de login.
À l'origine, ce qu'on appelle la connexion n'est qu'un concept compris par les humains, et le serveur n'a pas ce concept. Qu'est-ce que la connexion ? Uniquement avec autorisation (contenu accessible uniquement après connexion).
jwt n'a pas besoin de stocker le jeton côté serveur, car le jeton contient l'émetteur, l'utilisateur, la signature et d'autres informations, ce qui est suffisant pour prouver la connexion et n'a pas été falsifié. Car une fois falsifiée, la signature ne peut plus être vérifiée. Quant à l'identifiant de session, c'est différent. La session est principalement utilisée pour stocker d'autres données côté serveur. Ces données peuvent être sensibles et peu pratiques à mettre dans jwt. Bien sûr, la session n'est qu'un type de stockage. Vous pouvez également la stocker dans Redis ou même dans d'autres types de systèmes de stockage. En fait, vous pouvez également considérer les cookies comme des jetons (bien que ce soit faux, mais cela sera mieux compris de cette façon), et la session n'est qu'une des valeurs, rien de plus.