马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
使用 `User.findOne({ username })` 根据用户名查找用户,如果用户不存在,返回 404 错误。调用 `user.comparePassword(password)` 方法比力用户输入的密码和数据库中存储的加密密码,如果密码不匹配,返回 401 错误。
- // 处理用户登录的路由
- app.post("/login", async (req, res) => {
- try {
- const { username, password } = req.body;
- // 根据用户名查找用户
- const user = await User.findOne({ username });
- if (!user) {
- return res.status(404).json({ message: "User not found" });
- }
- // 比较密码
- const isPasswordValid = await user.comparePassword(password);
- if (!isPasswordValid) {
- return res.status(401).json({ message: "Invalid password" });
- }
- // 生成 JWT
- const token = jwt.sign(
- { userId: user._id, username: user.username },
- secretKey,
- {
- expiresIn: "1h", // 令牌有效期为 1 小时,可根据需求调整
- }
- );
- res.json({ message: "Login successful", token });
- } catch (error) {
- console.error("Error during login:", error);
- res.status(500).json({ error: "Internal Server Error" });
- }
- });
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |