2017-05-28 48 views
0

我正在建立一個網絡服務器與節點,快遞,jwt和護照。但是,當我嘗試有一個get梅索德路線:快遞護照中間件不擔心與獲取請求params

app.get('/api/:key/lights', passport.authenticate("jwt", {session: false}), function(req, res) { 
if (yubiAtHome) { 
var sKey = req.params.key; 
dbController.checkApiKey(sKey, function(err, bData) { 
    if (bData.status) { 
    hueController.getLights(function(err, jData) { 
     if (err) { 
     generateResponse(res, 'get Lights', null, err, 'lLights', 500); 
     } else { 
     generateResponse(res, 'get Lights', jData, null, 'lLights', 200); 
     } 
    }); 
    } else { 
    generateResponse(res, 'api key not valid', bData, 'apikey invalid', 'lLights', 500); 
    } 
    }); 
    } else { 
     generateResponse(res, 'yub not pressent', null, 'yub not pressent', 'lLights', 500); 
    } 
}); 

但是這條路並不出於某種原因,如果我刪除passport.authenticate("jwt", {session: false})或刪除PARAMS(以下簡稱「:關鍵」)它的工作原理,但否則它不會返回401:未授權。怎麼會這樣 ?

編輯

這是我嘗試訪問路線: Postman of the route

+0

,如果它不與護照中間件工作,也許你有一個權威性的問題。如果它不適用於特定的網址模式,請確保您嘗試使用此模式,並確保在此控制器之前沒有任何其他可以匹配此模式的路線。 –

+0

我已經檢查過了,我只有一條在路線上有更多參數的路線。我的默認路由'app.get('/',passport.authenticate(「jwt」,{ session:false }),function(req,res)res.sendFile(__ dirname +'/ public/index。 HTML'); });'正在工作.. – Lasse

+0

你能告訴我們,你如何試圖訪問這條路線? (例如郵差或測試用例或通過瀏覽器......任何東西) –

回答

1

嘗試從頭Authorization刪除引號。

我的測試在這裏,當我把引號,它不起作用。

例:

授權,而不是「授權」

+0

試過了,沒有做任何事情..: - \ – Lasse

+1

看,在你的郵遞員例子中,你使用的是頭部:'Authentication',但正確的是'Authorization'。你有沒有嘗試改變它? –

+0

對於.... omg哦,這只是一個愚蠢的錯誤.. omg ..感謝您發現愚蠢的錯誤.. – Lasse