我的服務器有一個註冊api,它在註冊後提供一個令牌,還有一個對用戶令牌進行認證的中間件。我需要註冊一個帳戶才能讓令牌與我的服務器執行其他操作。但是,中間件阻止了我的網絡請求,因爲我還沒有令牌。Express Middleware jsonwebtoken認證
那麼如何在這種情況下創建我的帳戶和令牌?用一些技巧來傳遞中間件?
中間件:
// Middleware to verify token, it will be called everytime a request is sent to API
api.use((req, res, next)=> {
var token = req.headers.token
if (token) {
jwt.verify(token, secret, (err, decoded)=> {
if (err) {
res.status(403).send({ success: false, message: "Failed to authenticate user." })
} else {
req.decoded = decoded
next()
}
})
} else {
res.status(403).send({ success: false, message: "No Token Provided." })
}
})
簽到:
// Sign In with email API
api.post('/signInWithEmail', (req, res)=> {
User.findOne({
email: req.body.email
}).select(userFields).exec((err, user)=> {
if(err) {
throw err
}
if (!user) {
res.send({ message: "User doesn't exist"});
} else if (user) {
var validPassword = user.comparePassword(req.body.password);
if (!validPassword) {
res.send({ message: "Invalid Password"});
} else {
var token = createToken(user);
res.json({
success: true,
message: "Login Successfully!",
token: token
})
}
}
})
})
爲什麼你不使用護照呢? –