Quand je pensais me connecter récemment, j'ai pensé à un ou deux d'entre eux et je voulais voir si quelqu'un avait de bonnes idées. Veuillez ne pas mentionner SSO. Nous n'en discuterons pas. Nous discuterons simplement de la façon de mettre en œuvre une connexion simple.
J'ai travaillé sur certaines bibliothèques de connexion. Supposons qu'une entreprise dispose de plusieurs sous-sites sous la forme A B C. Le modèle courant est à peu près le suivant :
Chaque site conserve des informations de connexion indépendantes par le cadre back-end et renvoie le statut de connexion dans le modèle HTML. À ce stade, vous devez vous reconnecter pour accéder aux différents sous-sites.
Chaque site conserve les informations SSO par le cadre back-end. Avant que l'utilisateur ne se connecte à chaque sous-site, le back-end redirigera la demande vers le site SSO pour synchroniser l'état de connexion, de sorte qu'après s'être connecté à A. , le statut de connexion peut être synchronisé lors de la connexion à B.
Le front-end et le back-end sont séparés. Lorsque chaque page de sous-site est chargée, le framework front-end demande le site SSO sur tous les domaines et synchronise l'état de connexion.
Séparez le front-end et le back-end. Le front-end déploie le service Node qui prend en charge le SSO est terminé sur la couche Node. La logique de connexion est complètement supprimée de la logique métier front-end et back-end (. actuellement la solution de notre entreprise).
Il existe de nombreux détails dans l'implémentation spécifique, par exemple si le champ du jeton est placé dans l'en-tête http ou le paramètre d'URL, l'attribut cookie ou json, ou par quelles règles le jeton est généré, quel est le délai d'expiration, qu'il s'agisse de localStorage ou de sessionStorage. est utilisé pour conserver le statut de connexion, etc. En fin de compte, il s'agit essentiellement de différents chemins menant à la même destination, il n'y aura donc pas d'expansion supplémentaire.
Fournissez une page de connexion, soumettez les informations utilisateur et faites-les correspondre à la base de données. Si la connexion réussit, les informations utilisateur sont écrites dans la session.