我試圖學習如何使用passport-local它的檔案,我可以做到這一點,但是當我提交表單時它不會重定向到任何站點
const express = require("express");
const router = express.Router();
const passport = require("passport");
const localStrategy = require("passport-local").Strategy;
const UserList = [{ email: "1@1", password: "1" }];
passport.use(new localStrategy(async (email, password, done) => {
const thisUser = UserList.find(x => x.email = "email" && x.password == password);
return done(null, thisUser)
}));
router.get('/signup', (req, res) => {
res.render('auth/signup.hbs')
});
router.post('/signup', (req, res) => {
passport.authenticate('local', {
successRedirect: '/',
failureRedirect: '/login'
})
});
module.exports = router;

uj5u.com熱心網友回復:
你忘了用
app.use(passport.initialize());
和 serializeUser 與
passport.serializeUser(function (user, done) {
done(null, user);
});
您可以查看下面的完整示例。我做了一個測驗,它奏效了。
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
var passport = require('passport');
var morgan = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var LocalStrategy = require('passport-local').Strategy;
app.use(morgan('dev')); // log t?t c? request ra console log
app.use(cookieParser()); // ??c cookie (c?n cho xác th?c)
app.use(bodyParser()); // l?y th?ng tin t? html forms
app.set('view engine', 'ejs'); // cài ??t ejs là templating
app.use(passport.initialize());
const UserList = [{email: "1@1", password: "1"}];
passport.serializeUser(function (user, done) {
done(null, user);
});
passport.use('local-signup', new LocalStrategy({
usernameField: 'email',
passwordField: 'password',
passReqToCallback: true // cho phép chúng ta g?i reqest l?i hàm callback
},
function (req, email, password, done) {
process.nextTick(function () {
const thisUser = UserList.find(x => x.email = "email" && x.password == password);
return done(null, thisUser)
});
}));
//
// routes ======================================================================
app.get('/', function (req, res) {
res.render('index.ejs'); // load the index.ejs file
});
app.get('/signup', function (req, res) {
res.render('signup.ejs');
});
app.post('/signup', passport.authenticate('local-signup', {
successRedirect: '/',
failureRedirect: '/signup',
}))
// launch ======================================================================
app.listen(port);
console.log('The magic happens on port ' port);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/409213.html
標籤:
