· 8 years ago · Jun 07, 2017, 02:42 PM
1I'm trying to set Passport for login.
2I installed `passport`, `passport-local`, `body-parser`, `cookie-parser`, and `express-session`.
3
4`server.js`
5
6```js
7var express = require('express');
8var app = express();
9var bodyParser = require('body-parser');
10var cookieParser = require('cookie-parser');
11var session = require('express-session');
12var passport = require('passport');
13var LocalStrategy = require('passport-local').Strategy;
14
15app.use(bodyParser());
16app.use(cookieParser());
17app.use(session({ secret: 'secret_key' }));
18app.use(passport.initialize());
19app.use(passport.session());
20
21passport.use(new LocalStrategy(
22 function(username, password, done) {
23 var found = false;
24 for(var i=0; i < User.length ; i++){
25 if(username === User[i].id && password === User[i].password){
26 found = true;
27 console.log('success');
28 return done(null, {user: [User[i]]});
29 }
30 }
31 if(found === false){
32 console.log('failed');
33 return done(null, false);
34 }
35 }
36));
37
38// Login
39app.get('/api/users', function(req, res){
40 var username = req.query.id;
41 var password = req.query.password;
42 var operation = req.query.operation;
43
44 if(operation == 'login'){
45 passport.authenticate('local',
46 { successRedirect: '/posts',
47 failureRedirect: '/login' }
48 );
49 }
50});
51````