What is the proper way to log in users using Angular & Express? What is the proper way to log in users using Angular & Express? express express

What is the proper way to log in users using Angular & Express?


To complete the @wpalahnuk answer you have to create a service or factory to deal the authentication and an httpInterceptor to intercept the response send by the server for know if the user is log or not (checking the staus code 401).

For the Express part you have to use the awesome passport node module to deal the server side authentication.

You have all the details here : https://vickev.com/#!/article/authentication-in-single-page-applications-node-js-passportjs-angularjs

This article is really great, Brad Green (Engineering Director at Google for AngularJS) adivse me this post.

Hope it Helps.

If you want to know more things about security in Angular you have just to ask and i'll we be really happy to help you.


I don't use node.js and express, but rather securesocial for the play! framework, but I assume the process is similar.

You need to create a service that contacts the server for user login status and then store this variable. You can then inject this service into each controller that needs to be aware or alter your users login status.

This blog is where I got my implementation from:http://blog.brunoscopelliti.com/deal-with-users-authentication-in-an-angularjs-web-app

Here's the service :

services.factory('UserService', [function() {    var sdo = {        isLogged: false,        username: ''    };    return sdo;}]);

Here's an example of logging in a user in a controller

var User = UserServicescope.login = function() {    var config = { /* ... */ } // configuration object    $http(config)    .success(function(data, status, headers, config) {        if (data.status) {            // succefull login            User.isLogged = true;            User.username = data.username;        }        else {            User.isLogged = false;            User.username = '';        }    })    .error(function(data, status, headers, config) {        User.isLogged = false;        User.username = '';    });}

I would really recommend you read the blog article as it covers this in more detail and there's a few other related articles

You can then use the User.isLogged variable to hide or display different elements as well as using it to determine which routes are available