[英]MEAN Stack login/register in different page than main app
对不起,我的英语不好!
我建立使用应用MEAN Stack
(MongoDB的+ Express.js + Angular.js + Node.js的)身份验证使用和passport.js
和JWT
( jsonwebtoken
和express-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.