我对NodeJS很陌生,所以有人可以向我解释一下:
我在express中创建的端点上获得了一个简单的授权。正如您在代码中看到的,任何地方都没有设置JWT或会话cookie。我还登录并浏览了cookie,以确保在任何地方都没有设置sessionId。考虑到这一点,我希望我的应用程序在每次刷新页面时(或者至少在我手动删除所有cookie、刷新缓存然后刷新页面时)都会提示输入凭据,但这并没有发生。浏览器仍在发送带有正确授权标头的请求(在我第一次输入凭据并刷新页面后),我不知道为什么。
简单端点代码:
app.get('/cms', function (req, res) { const reject = () => { res.setHeader("www-authenticate", "Basic"); res.sendStatus(401); }; const authorization = req.headers.authorization; if (!authorization) { return reject(); } const [username, password] = Buffer.from( authorization.replace("Basic ", ""), "base64" ) .toString() .split(":"); if (!(username === "user" && password === "pass")) { return reject(); } res.status(200) res.sendFile(path.join(__dirname+'/cms.html')); });