AngularJs - le meilleur moyen de limiter l'accès à des "connecté" utilisateurs
J'ai du mal avec la mise en place d'un système de connexion pour une application que je suis en train de créer.
Je suis en mesure de définir des cookies lorsque l'utilisateur est connecté ou en sortir. Je ne pense pas que les tests de tous les afficher si l'utilisateur est connecté en est un très élégant solution, et j'ai peur d'une page ici et là peuvent tomber à travers les mailles du filet (c'est un grand app).
Je pense que le meilleur moyen serait d'intercepter les modifications de trajet, en quelque sorte, et vérifier si l'utilisateur est connecté, sinon de les envoyer à une connexion/créer une page utilisateur. J'ai trouvé quelques méthodes, mais rien ne semble être officiellement documentée. Quelqu'un a utilisé ce type de méthode dans un cas réel, et est-il efficace?
Mon itinéraire fichier ressemble à ceci:
'use strict';
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
//LOGIN
.when('/User/LoginUser', {templateUrl: 'views/user/login.html',controller: 'loginCtrl'})
....... more routes here.......
//DEFAULT
.otherwise({redirectTo: '/'});
}]);
De l'aide ou des suggestions, ou des points des exemples du monde réel de comment je pourrais faire quelque chose comme ce serait grandement apprécié!
- Ma première pensée a sauté à "côté serveur" et "session" ici.
- J'utilise le routage dans mon application et je l'ai utiliser les appels ajax pour les données de session. J'utilise cela comme un moyen de déterminer le rôle des utilisateurs ainsi que de l'utilisateur connecté dans le statut de la session.
- Côté serveur n'est pas une option. @Asok, je suis en espérant un niveau plus élevé de la solution, de sorte que je n'aurai pas à demander à plusieurs reprises le serveur si l'utilisateur est connecté.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez intercepter les modifications d'itinéraire comme vous l'avez suggéré et d'agir en conséquence, à l'aide de l'exemple suivant comme base:
Également, ajouter
isLogin: true
à la définition de la route de votre page de connexion, comme ceci:Bonne chance avec votre projet!
isLogin
n'est pas une partie de laangular-router
API, c'est simplement une variable que nous avons vérifier à l'intérieur de notre$routeChangeStart
auditeur de mise en œuvre (voir laif
déclaration)Mon avis:
et voici votre angulaire app...