2017-05-22 16 views
0

ファイル群(js、html、css)とパスポート認証付きのnodejsアプリがある角型アプリケーションがあります。 私は以下のことをしたいと思っています: 1:自分のサイトにアクセスするとログインページが表示されます(私は実際に) 2:正常にログインすると、私はリダイレクトされます私の角度のアプリケーション 3:認証なしで、私は私のあらゆる角度のリソース(imgs、jsonsなど)にアクセスできないようにしたい。 これまで私は、フォルダに静的に設定し、確実に認証されたミドルウェア(ログインしている場合は正常に検出された)を渡すことができますが、その静的フォルダにアクセスしようとしています。いくつかのコード例:パスポートで静的フォルダを保護する

function ensureAuthenticated(req, res, next){ 
    if(req.isAuthenticated()){ 
     return next(); 
    } else { 
     //req.flash('error_msg','You are not logged in'); 
     res.redirect('/users/login'); 
    } 
} 

app.use('/app', ensureAuthenticated); 
app.use('/app', express.static(path.join(__dirname, 'app'))); 

router.get('/users/login', function(req, res){ 
    res.render('login'); 
}); 
router.post('/users/login', 
    passport.authenticate('local', {successRedirect:'/', failureRedirect:'/users/login',failureFlash: true}), 
    function(req, res) { 
    res.redirect('/'); 
    }); 

router.get('/', ensureAuthenticated, function(req, res){ 
    res.redirect('/app'); 
}); 

明らかに何かが分からない場合は、私に知らせてください、または私が間違ったトラックにいる場合は、私にいくつかの解決策を教えてください! ありがとうございました!

注:私はパスポートが新しく、express/nodejsのエキスパートではありません。

答えて

0

私はパスポートについて多くを知らないが、私はあなたが静的なパスのためのミドルウェアを作成することができると思い

app.get('/*', function (req, res, next) { 
 
    console.log('middleware'); 
 
    next(); 
 
}); 
 
app.use(express.static(path.join(__dirname, 'public')));

関連する問題