node.js - Having issues with integrating passport-local with restify -
my sample application follows
var util = require("util") restify = require("restify"), q = require("q"), _ = require("lodash"); //create server var server = restify.createserver({ name: "testauth" }); server.use(restify.queryparser()); server.use(restify.bodyparser()); //initialize passport var passport = require("passport"), localstrategy = require("passport-local").strategy; server.use(passport.initialize()); passport.use(new localstrategy( function(username, password, done) { return done(null, "test") })); //session setup server.post("/login", function(req, res, next) { passport.authenticate("local", function(err, user, info) { console.log(util.format("%s logged in!", user)) res.send(200); return next(); })(req, res, next); }); server.listen(8080);
when make request /login?username=test&password=test hits authenticate callback "user" false. when use
server.post("/login", passport.authenticate("local");
i bad request response restify.
this passport documentation page shows, in "custom callback" section @ bottom, that, way using passport in main snippet, request method should 'get', not 'post'. copy here code snippet page:
app.get('/login', function(req, res, next) { passport.authenticate('local', function(err, user, info) { if (err) { return next(err); } if (!user) { return res.redirect('/login'); } req.login(user, function(err) { if (err) { return next(err); } return res.redirect('/users/' + user.username); }); })(req, res, next); });
that page has other examples of how passport can used, including "local" variant attempted.
Comments
Post a Comment