簡體   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