[英]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.