Added passport for user authentication and session management

TODO: sessions across are not persistent after server restart.
To solve this the session data should be stored in the db.