我有一个非常简单的 Express API,可以使用 Passport.js 进行身份验证:
const express = require("express");
const app = express();
const LocalStrategy = require("passport-local").Strategy;
const passport = require("passport");
passport.use(
new LocalStrategy(function (username, password, done) {
if (username === "admin" || password === "password") {
// Authentication succeeded
return done(null, { id: 1, username: "admin" });
} else {
return done(null, false);
}
})
);
app.use(passport.initialize());
app.get("/", (req, res) => {
res.send("ok");
});
app.post("/login", passport.authenticate("local"), function (req, res) {
res.json({ message: "Authentication successful" });
});
app.listen(3000, () => {
console.log(`http://localhost:3000/`);
});
当我请求“/login”EX:
POST http://localhost:3000/login
Content-Type: application/json
{
"username":"admin"
,"password":"password"
}
响应说错误的请求
我是 Express.js 的新手,很难找到学习资源......我希望你能帮助我
别生气,你把你的
/login
搞砸了一点点:
//app.post("/login", passport.authenticate("local"), function (req, res) {
// res.json({ message: "Authentication successful" });
//});
app.post("/login", (req, res) => {
passport.authenticate("local", (err, user, info) => {
// if (err) {
// return res.status(500).json({ message: "Authentication error" });
// }
// if (!user) {
// return res.status(401).json({ message: "Authentication failed" });
// }
res.json({ message: "Authentication successful" });
})(req, res);
});