Passport returns “no username was given” when “usernameField” is set to “email”
I'm trying to use passport-local-mongoose for user authentication in an express app, but I want to use email instead of username so after some research I found that passport provides a way to do that by doing something like this:
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect email.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
passport.use(LocalStrategy);
User.authenticate();
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());But I'm still getting the "no username was given" error and it won't save the user to the database.
express authentication mongoose passport.js
add a comment |
I'm trying to use passport-local-mongoose for user authentication in an express app, but I want to use email instead of username so after some research I found that passport provides a way to do that by doing something like this:
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect email.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
passport.use(LocalStrategy);
User.authenticate();
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());But I'm still getting the "no username was given" error and it won't save the user to the database.
express authentication mongoose passport.js
Are you sending the credentials in parameters called 'email' and 'password' in the body of your request?
– David Vicente
Sep 13 at 14:08
Yes the inputs in the form have names of "email" and "password".
– Sam
Sep 13 at 14:23
add a comment |
I'm trying to use passport-local-mongoose for user authentication in an express app, but I want to use email instead of username so after some research I found that passport provides a way to do that by doing something like this:
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect email.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
passport.use(LocalStrategy);
User.authenticate();
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());But I'm still getting the "no username was given" error and it won't save the user to the database.
express authentication mongoose passport.js
I'm trying to use passport-local-mongoose for user authentication in an express app, but I want to use email instead of username so after some research I found that passport provides a way to do that by doing something like this:
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect email.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
passport.use(LocalStrategy);
User.authenticate();
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());But I'm still getting the "no username was given" error and it won't save the user to the database.
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect email.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
passport.use(LocalStrategy);
User.authenticate();
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function(username, password, done) {
User.findOne({ username: username }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect email.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
passport.use(LocalStrategy);
User.authenticate();
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());express authentication mongoose passport.js
express authentication mongoose passport.js
edited Nov 12 at 13:16
asked Sep 13 at 13:18
Sam
175211
175211
Are you sending the credentials in parameters called 'email' and 'password' in the body of your request?
– David Vicente
Sep 13 at 14:08
Yes the inputs in the form have names of "email" and "password".
– Sam
Sep 13 at 14:23
add a comment |
Are you sending the credentials in parameters called 'email' and 'password' in the body of your request?
– David Vicente
Sep 13 at 14:08
Yes the inputs in the form have names of "email" and "password".
– Sam
Sep 13 at 14:23
Are you sending the credentials in parameters called 'email' and 'password' in the body of your request?
– David Vicente
Sep 13 at 14:08
Are you sending the credentials in parameters called 'email' and 'password' in the body of your request?
– David Vicente
Sep 13 at 14:08
Yes the inputs in the form have names of "email" and "password".
– Sam
Sep 13 at 14:23
Yes the inputs in the form have names of "email" and "password".
– Sam
Sep 13 at 14:23
add a comment |
1 Answer
1
active
oldest
votes
Solved by using
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
User.authenticate()
));
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f52314623%2fpassport-returns-no-username-was-given-when-usernamefield-is-set-to-email%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Solved by using
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
User.authenticate()
));
add a comment |
Solved by using
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
User.authenticate()
));
add a comment |
Solved by using
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
User.authenticate()
));
Solved by using
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
User.authenticate()
));
answered Sep 28 at 15:27
Sam
175211
175211
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f52314623%2fpassport-returns-no-username-was-given-when-usernamefield-is-set-to-email%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Are you sending the credentials in parameters called 'email' and 'password' in the body of your request?
– David Vicente
Sep 13 at 14:08
Yes the inputs in the form have names of "email" and "password".
– Sam
Sep 13 at 14:23