私のサーバーには、登録後にトークンを提供する登録apiと、ユーザーのトークンを認証するミドルウェアがあります。自分のサーバーで何か他のことをするトークンを取得するには、アカウントを登録する必要があります。しかし、まだトークンがないので、ミドルウェアは自分のネットワーク要求をブロックします。Expressミドルウェア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
})
}
}
})
})
なぜあなたはこれにパスポートを使用しないのですか? –