2017-08-10 65 views
-1

所以我使用https://www.npmjs.com/package/basic-auth和一切正常,因爲它是假設,但我無法弄清楚如何爲我的生活!NodeJS基本認證 - 它在哪裏存儲在前端?

我的設置很簡單,當你認證你是管理員,否則你不是。我想要做的是根據用戶是否爲管理員,在前端顯示某個導航欄。

的NodeJS中間件代碼:

exports.login = function (req, res, next) { 
console.log(req.header); 

function unauthorized(res) { 
    res.set('WWW-Authenticate', 'Basic realm=Authorization Required'); 
    return res.sendStatus(401); 
}; 

    var user = basicAuth(req); 

    if (!user || !user.name || !user.pass) { 
    return unauthorized(res); 
    }; 

    if (user.name === 'Admin' && user.pass === 'myPassword') { 

    return next(); 
    } else { 
    return unauthorized(res); 
    }; 
}; 

伊夫檢查本地存儲,餅乾,我能想到的,但在基本身份驗證登錄後奇蹟般地出現在頭自動一切。如果我要使用不正確的憑證進行登錄,則會在前端返回並記錄未經授權的對象,但如果我正確進行身份驗證,則不會有任何對象可以看到。

任何幫助,非常感謝。如果您需要任何額外的代碼等,請讓我知道!

謝謝!

回答

0

根據你的代碼,如果(!user || !user.name || !user.pass)那麼你return unauthorized(res);unauthorised功能是早先定義的,它負責發送狀態和頭返回到前端。

但是在登錄成功的情況下(user.name === 'Admin' && user.pass === 'myPassword')您只有return next()下一個函數會移動到代碼中的下一個中間件。

達到你想要的,你應該什麼實際返回前到底是什麼:

if (user.name === 'Admin' && user.pass === 'myPassword') { 
res.end('Access granted'); 
}