2016-07-08 54 views
1

我是MEAN堆棧的新手。 我使用智威湯遜驗證API端點'/ API /候選人

在客戶端/角JS服務我有以下的服務器端我有進入

resumeFactory.get = function(candidateName) { 
    return $http.get('/api/candidates', { 
     headers: { 
     Authorization: 'Bearer '+ authenticationService.getToken()  
    }); 
}; 

app.get('/api/candidates', auth, function (req, res) { 
if (!req.payload._id) { 
    //user not logged in 
    console.log(req); 
    res.status(401).json({"message": "no user logged in from candidates"}); 
} 
else { 
    Candidate.find({}, function (err, candidates) { 
     if (err) { 
      res.send(err); 
     } 
     res.json(candidates); 
    }); 
} 
}); 

這工作正常。即「權威性」是能夠從報頭中提取令牌

當我改變一切,以代替得到

客戶端

$http.post() 

服務器端

app.post() 

我從智威湯遜的錯誤如下:

UnauthorizedError: No authorization token was found 

上正在發生的事情有什麼建議?我可以下班,但我想知道爲什麼不起作用

+0

如果您真的在標題中發佈該令牌,請檢入開發工具。 – Nonemoticoner

+0

@Nonemoticoner我無法在Dev Tools中找到它。不知道如何查找請求中的標題 – Ravi

+0

@Nummoticoner - 我終於能夠弄清楚如何檢查標題網絡 - > XHR – Ravi

回答

1

隨着$http.post配置是third argument,沒有第二(like in get)所以相應地更新您的參數:

$http.post('/url', { cool: postData }, { 
    headers: { 
    Authorization: 'Bearer '+ authenticationService.getToken() 
    }  
}); 

更重要的是,use an interceptor將授權標頭添加到所有請求。

+0

感謝Andy Gaskell。 – Ravi