0
我試圖讓我的模擬API(json-server)以一種方式作出響應,如果客戶端發送AUTH_TOKEN
在他的請求頭,並以另一種方式,如果他沒有。這段代碼就是我使用的,它來自json-server文檔。如何在json-server請求中找到request.headers?
const jsonServer = require('json-server')
const server = jsonServer.create()
const router = jsonServer.router('db.json')
const middlewares = jsonServer.defaults()
server.use(middlewares)
server.use((req, res, next) => {
if (isAuthorized(req)) { // add your authorization logic here
next() // continue to JSON Server router
} else {
res.sendStatus(401)
}
})
server.use(router)
server.listen(3000,() => {
console.log('JSON Server is running')
})
當然這個工程,除了isAuthorized(req)
函數需要檢查請求頭。我的isAuthorized
功能看起來如下(僞)。
const isAuthorized = (req) => {
return req.getHeader('AUTH_TOKEN') ? true : false;
}
這不起作用,因爲req
沒有getHeader
方法,但我的意圖是明確的 - 我需要檢查令牌,如果存在返回true,否則爲false。
我該如何做到這一點?
req.headers
返回以下內容。
{
host: 'localhost:3000',
map: '[object Object]',
'if-none-match': 'W/"a...........5r/3c"',
accept: 'application/json, text/plain, */*',
'user-agent': 'App/1 CFNetwork/887 Darwin/16.7.0',
'accept-language': 'en-us',
'accept-encoding': 'gzip, deflate',
connection: 'keep-alive'
}
這實際上與我在實際請求中發送的標頭沒有任何關係。
就是這樣 - 非常感謝! – miphe