Tôi đang sử dụng hộ chiếu để đảm bảo API của mình. Tôi loại cuộc đấu tranh để hiểu làm thế nào tôi là nghĩa vụ phải gửi lại tin nhắn tùy chỉnh trong trường hợp lỗi và tôi hy vọng sẽ tìm thấy một câu trả lời ở đây.Thông báo lỗi tùy chỉnh sử dụng hộ chiếu Bearer
Dưới đây là những gì tôi đã làm:
Một tuyến đường (server.js):
router.route('/Applications').get(authController.BearerAuthenticated, applicationController.getApplications);
My Passport Stuff (authController.js):
Passport.use(new BearerStrategy(function(token, cb) {
Token.findOne({token: token}, function(err, token){
if (err){return cb(null, false);}
if (!token) { return cb(null, false); }
return cb(null, token);
});
}));
exports.BearerAuthenticated = Passport.authenticate('bearer', {session: false});
phương pháp ứng dụng của tôi (Application .js)
exports.getApplications = function(req, res) {
Application.find({userId:req.user._id}, function(err, apps) {
if (err)
res.send(err);
res.json(apps);
});
};
Nếu mã thông báo của tôi hợp lệ và phương thức Bearer trả lại
return cb(null, token);
Sau đó, tôi có thể nhập phương thức getApplications của mình. Nó có ý nghĩa.
Điều là khi mã thông báo không hợp lệ, tôi không nhập phương thức (có ý nghĩa nữa) nhưng tôi không thể tìm ra cách trả lại thư tùy chỉnh cho khách hàng thay vì thông báo sau tôi nhận được theo mặc định.
Unauthorized
Điều gì sẽ là cách trả lại Json với mã lỗi để người dùng biết rằng mã thông báo của mình đã chết hoặc đơn giản không tồn tại?
Cảm ơn bạn đã dành thời gian. :)