Le projet est séparé d'avant en arrière. Le back-end ne fournit que des interfaces vers le front-end, et chaque interface a un jeton. Certaines pages nécessitent désormais une connexion pour accéder.前端如何拦截
。比如:由A页面
通过A标签跳转到B页面
(B页面需要登录才能进去)。我现在做法是进到B页面,发送ajax请求
L'arrière-plan renvoie le statut avant d'y accéder. la page de connexion. Le problème maintenant est que j'ai entré B. Il est déraisonnable de porter des jugements uniquement sur la base de la page.
Vous pouvez envisager d'envoyer une requête ajax d'abord en cliquant sur la balise a, puis décider où sauter ?
Vous pouvez encapsuler une requête ajax par vous-même, juger l'état de connexion séparément, passer à la connexion si vous n'êtes pas connecté et renvoyer les données directement après vous être connecté
Écrivez un js public, écrivez-y la fonction de chargement de page, référencez la page à laquelle vous avez besoin d'une autorisation de connexion pour accéder, puis écrivez-y un jugement logique
Le front-end n'intercepte pas, le serveur intercepte. Pour l’interception frontale, cela ne peut se faire qu’à la page B. Avez-vous pensé à épeler l’URL à saisir ? L'interface d'accès à la page B essaie d'obtenir les informations utilisateur. Si vous les obtenez, vous êtes connecté. Si vous ne les obtenez pas, vous n'êtes pas connecté.
Les jetons ont généralement un délai d'expiration. Lorsque vous enregistrez des jetons dans le stockage local, apportez un délai d'expiration. Lorsque la page saute, déterminez d'abord si le jeton
a expiré, il passera à la page de connexion.
S'il s'agit d'une application d'une seule page, cela est facile à résoudre. S'il ne s'agit pas d'une application d'une seule page, écrivez-la simplement dans un js public.
L'utilisateur passera certainement à la deuxième page en raison d'une action interactive. La vérification de la connexion sera effectuée avant de sauter. S'il n'est pas connecté, il lui sera demandé de se connecter (ou de s'inscrire). encapsulated. Encapsulated Réservez un rappel réussi après la connexion et un rappel après une inscription réussie, puis passez à la page B dans la fonction de rappel
Il existe deux manières de résoudre ce problème :
1. Le serveur effectue une vérification puisqu'il s'agit d'une page qui nécessite une connexion pour entrer, ce qui impliquera inévitablement des autorisations de l'utilisateur. Il y a un jeton dans la requête ajax envoyée par la page B. Le le backend effectue une vérification de l'expiration du jeton pour déterminer s'il y a une autorisation. Lorsque des erreurs sont signalées, revenez au front-end et écrivez une méthode publique pour vérifier le message d'erreur sans autorisation (cette méthode devrait être plus sécurisée sur l'interface de réponse)
2. le frontal écrit un chien de garde js sur chaque page pour déterminer l'expiration des informations utilisateur stockées. Le temps saute.
Je pense que la demande de l'affiche est de déterminer s'il faut sauter en cliquant. Vous pouvez changer la balise a en fonction de clic et juger dans la fonction pour accéder à la page en utilisant window.location.href = url
À quoi sert le framework frontal lz ?
Je sais qu'il existe une fonction hook dans vue_router qui peut être implémentée dans router.beforeEach, il est jugé s'il faut se connecter. Sinon, connectez-vous. , juste après()