繁体   English   中英

MEAN堆栈登录/注册比主要的应用程序不同的页面

[英]MEAN Stack login/register in different page than main app

对不起,我的英语不好!
我建立使用应用MEAN Stack (MongoDB的+ Express.js + Angular.js + Node.js的)身份验证使用和passport.jsJWTjsonwebtokenexpress-jwt )。
我想做的事?
登录和注册路线渲染HTML,使用nunjucks,如果它会成功,我们呈现的index.html文件,在公共目录中放置。
PS:这是正确的方法吗?
我有什么问题
谁能告诉我这项技术吗?
我的代码(基于https://thinkster.io/mean-stack-tutorial ):

app.get('/', function(req,res){
if (!req.user)
  res.redirect('/about')
else
  res.render('index')
});

app.get('/login',function(req, res) {
  res.render('auth/login', {
    title: 'Login'
  });
});

app.post('/',  function(req, res, next) {
    if (!req.body.login || !req.body.password) {
      return res.status(400).json({ message: 'Please fill out all fields' });
    }
    passport.authenticate('local', function(err, user, info) {
      if (err) { return next(err); }
      if (user) { return res.json({ token: user.generateJWT()});
      /*generateJWT form user model code returns jwt.sign({}) using jsonwebtoken:
          var jwt = require('jsonwebtoken');
       */
      } else { return res.status(401).json(info);}
    })(req, res, next);
  });

在这段代码中,我们返回生成的道理,如果登录就是成功。 我该怎么做才能呈现index.html,如何处理生成的令牌? 对不起,这个虚拟的问题,我还在学习智威汤逊。 谢谢

节点是服务器端语言。 通常,由于您使用的是MEAN堆栈,因此需要在node中创建API并将数据传递到客户端Angular。

因此,回答您的问题-要呈现html,您的登录函数需要使用回调将某些内容返回给客户端,并且Angular将呈现您的html页面。

您需要对生成的令牌执行的操作是,从下一次到对没有令牌的服务器的任何请求将/将产生错误。 其他任何人都可以调用您的节点API和所需的结果。 对于GET方法,这是极其必要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM