我將切入追逐。我使用passport-local構建了一個安全的應用程序,並且所有路線都很好地覆蓋。我的應用程序所做的是從mongo獲取數據並將其作爲api提供,然後反饋給d3圖表。現在我的所有網頁都是安全的,但是我可以在不登錄應用程序的情況下訪問api。使用護照本地保護API
這裏是我的網頁如何在route.js
app.get('/dashboard', isLoggedIn, function(req, res) {
res.render('dashboard.html', {
user : req.user
});
});
結構化,這是我的API代碼看起來像:
app.get('/api/finanData1', function(req, res) {
// use mongoose to get all nerds in the database
Subjects.find({}, {'_id': 0}, function(err, subjectDetails) {
// if there is an error retrieving, send the error.
// nothing after res.send(err) will execute
if (err)
res.send(err);
else
res.json(subjectDetails); // return all nerds in JSON format
});
});
我試過造型API代碼,但它不工作。真的很感謝任何幫助。
謝謝。
編輯 回答這個問題的isLoggedIn中間件, 我修改了API代碼:
app.get('/api/finanData1', isLoggedIn, function(req, res) {
// use mongoose to get all nerds in the database
Subjects.find({}, {'_id': 0}, function(err, subjectDetails) {
// if there is an error retrieving, send the error.
// nothing after res.send(err) will execute
if (err)
res.send(err);
else
// return all nerds in JSON format
res.json(subjectDetails, {
user : req.user
});
});
});
現在,當我嘗試沒有被記錄在訪問API,我被帶到了登錄頁面是完美的。但是登錄到應用程序後,我的圖表不會填充。如果我打開API鏈接,同時記錄在我得到這個響應,而不是,應該是有JSON數據:
{"user":{"_id":"55f2f701f26336d85c28012b","__v":0,"local":{"password":"$2a$08$Z69k5PqxWQi5jxFNm2g/xOIAG/QG9L1ud/lO0kJHhDWQWPm2Zfl4e","email":"[email protected]"}}}
我應該分享我的服務器上的文件呢?
使用您所做的'isLoggedIn'中間件功能不適合您? –
你的API不使用IsLoggedIn中間件。 –
謝謝大家的及時迴應,我正在更新的問題包括信息。 –