如何为登录应用添加会话和cookie?

时间:2017-03-15 05:26:40

标签: angularjs node.js mongodb

我使用Node js,mongo db和angular js完成了以下应用程序, 如何为个人资料页面添加sesssion和cookie,只有在登录后才能看到?

我在github中有这个程序 https://github.com/dhanyamj/loginapp.git

3 个答案:

答案 0 :(得分:1)

对于客户端会话,您可以使用Angularjs的$cookies服务来管理Cookie。

More info here

您还可以使用此库管理Angularjs中的LocalstorageSessionstorage

ngStorage

请记住,这仅适用于客户端会话,您还必须在Node中创建服务器端会话。

答案 1 :(得分:0)

请执行以下操作

  1. 登录成功响应(nodejs)中的登录路由返回会话
  2. 如果您在登录控制器中取得成功,则将会话设置为cookie或创建authService以保存会话。
  3. 将该会话值发送到标题中的每个授权api发送
  4. 在私人路线上,您必须添加解决方案并检查其是否有效,即是否已获得授权,否则将重定向到登录页面。
  5. 希望这会给你一个授权的想法。

答案 2 :(得分:0)

您可以为身份验证中间件使用节点passport js本地策略。然后这样做

function isAuthenticated(req, res, next) {

       // CHECK IF LOGIN
        if (req.user.authenticated)
            return next();

        // IF A USER ISN'T LOGGED IN, THEN REDIRECT THEM SOMEWHERE
        res.redirect('/login');
    }

然后在你的路线中传递函数

route.get('/profile', isAuthenticated, function(req, res) {
        res.render('profile');
    });

如果用户登录则会查看该个人资料,如果不是,他们将被重定向到您的登录页面。