Rumah  >  Soal Jawab  >  teks badan

Pepijat dalam Express js/Node js menunjukkan log masuk tidak berfungsi dengan betul

Saya mempunyai aplikasi CRUD mudah yang membolehkan pengguna mendaftar dan log masuk Terdapat titik akhir pendaftaran dalam General.js, ini berfungsi dengan baik dan log masuk dicetak

"message": "登录无效。请检查用户名和密码"

- index.js
- router
- - general.js
- - auth_users.js
- - booksdb.js

Daftar di Posmen

Apabila saya log masuk ke titik akhir dalam auth_users.js

Ini ialah kod log masuk auth_users.js的登录代码,它有登录端点,主要是负责登录的express函数regd_users.post() Ia mempunyai titik akhir log masuk, yang merupakan fungsi ekspres yang bertanggungjawab untuk log masuk regd_users.post()

.
const express = require('express');
const jwt = require('jsonwebtoken');
let books = require("./booksdb.js");
const regd_users = express.Router();

let users = [];

const isValid = (username)=>{ //returns boolean
//write code to check is the username is valid
let userswithsamename = users.filter((user)=>{
    return user.username === username
  });
  if(userswithsamename.length > 0){
    return true;
  } else {
    return false;
  }
}

const authenticatedUser = (username,password)=>{ //returns boolean
//write code to check if username and password match the one we have in records.
let validusers = users.filter((user)=>{
    return (users.username === username &&users.password === password)
  });
  if(validusers.length > 0){
    return true;
  } else {
    return false;
  }
}
 
//only registered users can login
regd_users.post("/login", (req,res) => {

    const username = req.query.username;
    const password = req.query.password;
    if (!username || !password) {
        return res.status(404).json({message: "Error logging in"});
    }
    if (authenticatedUser(username,password)) {
      let accessToken = jwt.sign({
        data: password
      }, 'access', { expiresIn: 60 * 60 });
      req.session.authorization = {
        accessToken,username
    }
    return res.status(200).send("User successfully logged in");
    } else {
      return res.status(208).json({message: "Invalid Login. Check username and password"});
}
});

// Add a book review
regd_users.put("/auth/review/:isbn", (req, res) => {
  //Write your code here
  return res.status(300).json({message: "Yet to be implemented"});
});

module.exports.authenticated = regd_users;
module.exports.isValid = isValid;
module.exports.users = users;

P粉428986744P粉428986744403 hari yang lalu540

membalas semua(1)saya akan balas

  • P粉184747536

    P粉1847475362023-09-13 00:26:40

    Berdasarkan kod yang diberikan, nampaknya terdapat masalah yang boleh menyebabkan mesej "Log Masuk Tidak Sah".

    Bandingkan nama pengguna dan kata laluan dalam fungsi Pengguna yang disahkan: Dalam fungsi Pengguna yang disahkan, anda menapis tatasusunan pengguna untuk memadankan nama pengguna dan kata laluan. Walau bagaimanapun, terdapat masalah dengan fungsi penapisan. Daripada menggunakan users.username dan users.password, gunakan user.username dan user.password. Pembolehubah ini harus tunggal kerana ia mewakili setiap elemen dalam tatasusunan pengguna semasa lelaran.

    Tukar baris ini:

    return (users.username === username && users.password === password)

    Kepada:

    return (user.username === username && user.password === password)

    balas
    0
  • Batalbalas