没有猫鼬的 Passport.js 本地策略

Che*_*hen 5 authentication node.js passport.js

我正在尝试查找有关节点应用程序最简单的使用护照登录的资源。我的意思是,使用:

中间件:

    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({extended: false}));
    app.use(cookieParser());

    app.use(session({ secret: 'keyboard cat', resave: false, saveUninitialized: false }));
    app.use(passport.initialize());
    app.use(passport.session());

    app.use(express.static('public'));
Run Code Online (Sandbox Code Playgroud)

护照:

passport.serializeUser(function(user, done) {
    done(null, user.id);
});

passport.deserializeUser(function(id, done) {
    done({ id: id, nickname: "test"})
});


    passport.use(new LocalStrategy(
      function(username, password, done) {
        console.log("test");
          if (username === 'username') {
              return done(null, { name: "test", id: '1234'});
          } else {
              return done(null, false, { message: 'Incorrect cred.' });
          }
      })
    )
Run Code Online (Sandbox Code Playgroud)

和重定向:

    app.post('/login',
      passport.authenticate('local', { 
          successRedirect: '/index.html',
          failureRedirect: '/login'
     })
    );
Run Code Online (Sandbox Code Playgroud)

我的应用程序结构:

/app.js
/public/index.html
/public/login.html
Run Code Online (Sandbox Code Playgroud)

就是这样。网络上到处都是带有插件的猫鼬的相同例子,每个人都只是互相复制粘贴。

关键是我想稍后在 LocalStrategy 代码中插入我自己的代码(可能会使用 LDAP)。

目前,我没有使用在公共文件夹中创建的页面重定向到 /index.html,而是[object Object]在 index.html 上接收。

Che*_*hen 1

发现问题了!重定向不起作用,所以我回头查看并注意到express.static mw是在护照initialize()之后设置的,而不是之前。我刚刚把它移到顶部然后......彩虹

  • @Chen - 如果您在这里发布整个解决方案,将会更有帮助 (2认同)