Konsep Utama:
Prasyarat:
Pastikan anda mempunyai Node.js dan MongoDB dipasang. Arahan untuk memasang ini boleh didapati di laman web masing -masing. Kebiasaan dengan node.js, express.js, dan konsep asas MongoDB berguna.
Persediaan Projek:
mkdir AuthApp cd AuthApp npm init -y
npm install express body-parser express-session passport passport-local-mongoose mongoose connect-ensure-login
kod pelayan-pelayan (index.js
const express = require('express'); const app = express(); const bodyParser = require('body-parser'); const expressSession = require('express-session')({ secret: 'your-secret-key', resave: false, saveUninitialized: false }); const passport = require('passport'); const mongoose = require('mongoose'); const passportLocalMongoose = require('passport-local-mongoose'); const connectEnsureLogin = require('connect-ensure-login'); // MongoDB Connection mongoose.connect('mongodb://localhost/MyDatabase', { useNewUrlParser: true, useUnifiedTopology: true }); // User Schema const userSchema = new mongoose.Schema({ username: String }); userSchema.plugin(passportLocalMongoose); const User = mongoose.model('User', userSchema); // Passport Configuration passport.use(User.createStrategy()); passport.serializeUser(User.serializeUser()); passport.deserializeUser(User.deserializeUser()); // Middleware app.use(express.static(__dirname)); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(expressSession); app.use(passport.initialize()); app.use(passport.session()); // Routes app.post('/login', passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login?info=Invalid credentials' })); app.get('/login', (req, res) => res.sendFile('html/login.html', { root: __dirname })); app.get('/', connectEnsureLogin.ensureLoggedIn(), (req, res) => res.sendFile('html/index.html', { root: __dirname })); app.get('/private', connectEnsureLogin.ensureLoggedIn(), (req, res) => res.sendFile('html/private.html', { root: __dirname })); app.get('/user', connectEnsureLogin.ensureLoggedIn(), (req, res) => res.json({ user: req.user })); const port = process.env.PORT || 3000; app.listen(port, () => console.log(`App listening on port ${port}`)); //Register Sample Users (remove or comment out after initial setup) User.register({username: 'testuser'}, 'password', (err, user) => { if (err) console.error(err); });
Buat dan
folder dalam root projek anda. Populasi mereka dengan fail HTML yang diperlukan (, html
, css
) dan fail index.html
untuk gaya (rujuk kepada respons asal sebagai contoh kod). JavaScript sisi klien perlu diselaraskan sedikit untuk memadankan laluan dan respons pelayan yang dikemas kini. login.html
private.html
styles.css
menjalankan aplikasi:
Mulakan pelayan MongoDB anda.
node index.js
. http://localhost:3000
Respons yang disemak ini memberikan pelaksanaan yang lebih ringkas dan efisien, yang memberi tumpuan kepada aspek teras pengesahan tempatan dengan pasport.js. Ingatlah untuk menggantikan Atas ialah kandungan terperinci Pengesahan Tempatan Menggunakan Pasport di Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!