vesse / passport-ldapauth

LDAP authentication strategy for Passport

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Always getting Unknown authentication strategy "ldapauth"

RikyTres opened this issue · comments

Hi, I'm trying to implement an ldap authentication to a local Windows domain.
I followed the example on the the README but I still have the following error

Unknown authentication strategy "ldapauth"
Error: Unknown authentication strategy "ldapauth"
    at attempt (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\passport\lib\middleware\authenticate.js:186:37)
    at authenticate (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\passport\lib\middleware\authenticate.js:362:7)
    at Layer.handle [as handle_request] (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\index.js:275:10)
    at Function.handle (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\index.js:174:3)
    at router (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\index.js:47:12)
    at Layer.handle [as handle_request] (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\index.js:275:10)
    at initialize (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\passport\lib\middleware\initialize.js:53:5)
    at Layer.handle [as handle_request] (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\riccardo.tresoldi\development\exchangedbmanager\node_modules\express\lib\router\index.js:275:10)

I'm using an Express.

In the /app.js file i have this:

var passport = require('passport');
var LdapStrategy = require('passport-ldapauth');
[...]
passport.use(new LdapStrategy({
    server: {
      url: 'ldap://10.255.255.1:389',
      bindDN: 'CN=simple One,CN=Users,DC=test,DC=local',
      bindCredentials: 'password',
      searchBase: 'OU=Utenti e Gruppi,OU=Tresoldi,DC=tresoldi,DC=loc',
      searchFilter: '(uid={{username}})'
    },
    usernameField: "CN=simple One,CN=Users,DC=test,DC=local",
    passwordField: "password"
  }),
  function (user, done) {
    logger.info("LDAP user ", user.displayName, "is logged in.")
    return done(null, user);
  });
[...]
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(passport.initialize());
app.use('/', indexRouter);

ant in the index.js file for the /routes/index.js file (to handle the request) I have this:

var passport = require('passport');
router.post('/login', passport.authenticate('ldapauth', {session: false}), function(req, res) {
  res.send({status: 'ok'});
});

Can someone help me? I probably misunderstood the example.

Might be because of the odd function that apparently should be the callback for LdapStrategy but is not given as parameter to it. But, this question does not use the issue template nor does it belong here. See StackOverflow.