Comments (2)
If you're interested in just adding this to the Readme, here is how someone would do it...
var validator = require('validator')
, Validator = validator.Validator
, sanitize = validator.sanitize;
app.post('/login', function(req, res, next) {
var v = new Validator()
, errors = [];
v.error = function(msg) {
errors.push(msg);
}
v.check(req.body.username, 'Please enter a username to log in.').notEmpty();
v.check(req.body.password, 'Please enter a password to log in.').notEmpty();
if (errors.length > 0) {
for(var i=0;i<errors.length;i+=1) {
req.flash('error', errors[i]);
}
res.redirect('/login');
} else {
req.body.username = sanitize(req.body.username).xss(); // or some other sanitize function
req.body.password = sanitize(req.body.password).xss(); // or some other sanitize function
next();
}
}, passport.authenticate('local', { ... });
I would have included this in the function for new LocalStrategy(...)
, however the done
callback does not allow us to pass an array of messages for flash messages (e.g. return done(null, false, [ { type: 'error', message: 'Blah Blah' }, { type: 'info', message: 'Beep Beep' } ] );
from passport-local.
In keeping with the spirit of Passport and its flexibility, validation (as with ORM layers) are delegated to the application, allowing people to choose the modules they want.
That said, I agree that the validation is logically best done in the LocalStrategy
verify callback. See my related comment here, for how you could do that and flash multiple errors:
from passport-local.
Related Issues (20)
- Can support graphql ?
- req.isAuthenticated is returning false while using with react when we refreshes the pages
- How to use local strategy on multiple Models? HOT 3
- Is there a way to remove the www-authenticate header in the response?
- Why I'm not able to Log in?
- req.user is undefined and req.isAuthenticated() returns false after login request
- jwt malformed message HOT 3
- Cannot overwrite badRequestMessage
- req.isAuthenticated() is false after login HOT 1
- Bug: Password field cannot be empty
- set authentication on two entity of user HOT 2
- cannot run npm test HOT 2
- Examples missing HOT 3
- Add examples
- Configure Strategy the "return" is Redundant HOT 1
- broken website link
- done function with null user returns an error
- Getting a lot of 410 again **Progress Issue** HOT 1
- 0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf
- Documentation out of date - findOne no longer accepts a callback
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from passport-local.