- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当我尝试运行代码时,它给出了引用错误:LocalStrategy 未定义。
这是我第一次使用node.js,但我遇到了困难。我非常感谢您提前提供的帮助。
我将所有代码放在一个片段中,以便您可以轻松浏览。我尝试过其他帖子进行修复,但没有成功。
/***********
Modules
***********/
//Load the express library
var express = require('express');
//Create a new variable called “app”; we pass on the express() method.
var app = express();
//Set Port
var port = 7878;
var mongoose = require('mongoose'); //Place this on top; Loads mongoose library
var bodyParser = require('body-parser');
var passport = require('passport');
var LocalStratgy = require('passport-local').Strategy;
/*Body parser*///whenever you do a post request from the form, it gets the data through a URL encoded format.
app.use(bodyParser.urlencoded({
extended: true
}));
app.use('/js', express.static(__dirname + '/js'));
/*Initialize Passport*/
app.use(passport.initialize());
app.use(passport.session());
/***********
Database
***********/
/*Database connection - MongoDB*/
//Created from the command earlier. Ensure this is done on the first_db instance
var usr = 'admin';
var pwd = '123456';
var dbHost = 'localhost';
var dbPort = '27017';
var database = 'first_db';
var url = 'mongodb://' + usr + ':' + pwd + '@' + dbHost + ':' + dbPort + '/' + database;
console.log('mongodb connection = ' + url);
mongoose.connect(url, function(err) {
if(err) {
console.log('connection error: ', err);
} else {
console.log('connection successful');
}
});
/***********
Models
***********/
//User model
//Define our fields for the table
var UserSchema = new mongoose.Schema({
user_id: mongoose.Schema.ObjectId,
username: String,
password: String
});
//Create model object
var User = mongoose.model('user', UserSchema);
/***********
Routes
***********/
var bcrypt = require('bcrypt-nodejs'); //should be placed on top
//Renders our html file
app.get('/', function (req, res, next) {
res.sendFile( __dirname + '/index.html');
});
//render register.html when /register is called
app.get('/register', function (req, res, next) {
res.sendFile( __dirname + '/register.html');
});
app.get('/home', function (req, res, next) {
res.sendFile(__dirname + '/home.html');
});
app.post('/login', passport.authenticate('local'),
function(req, res) {
res.redirect('/home');
});
/* Login logic for passport.authenticate*/
passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function (err, user) {
if(user !== null) {
var isPasswordCorrect = bcrypt.compareSync(password, user.password);
if(isPasswordCorrect) {
console.log("Username and password correct!");
return done(null, user);
} else {
console.log("Password incorrect!");
return done(null, false);
}
} else {
console.log("Username does not exist!");
return done(null, false);
}
});
}
));
/**********
Serialize and Deserialize here for passport.authenticate
**********/
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(user, done) {
done(err, user);
});
app.post('/register', function (req, res, next) {
var password = bcrypt.hashSync(req.body.password);
req.body.password = password;
User.create(req.body, function(err, saved) {
if(err) {
console.log(err);
res.json({ message : err });
} else {
res.json({ message : "User successfully registered!"});
}
});
});
app.listen(port, '0.0.0.0', function() {
console.log('Server running at port ' + port);
});
最佳答案
原因是您定义了 var LocalStratgy,而不是 LocalStrategy。
关于javascript - Node.js 上的 Passport 模块 - 引用错误 : LocalStrategy is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44470961/
我正在使用 passport.js 进行身份验证,并尝试设置本地策略。但是,每当我运行我的代码时,我都会收到一条错误消息,提示 localStrategy 不是构造函数。 代码: // config/
我正在创建一个像这样的策略对象: var strat = new LocalStrategy({ usernameField: 'email' },
我正在尝试在 Passport 上注册后重定向用户 passport.use('local-signup', new LocalStrategy({ usernameField : 'username
我尝试使用express4/passportjs设置一个简单的本地策略身份验证,但从未调用身份验证函数:这是我的代码 var passport = require('passport'); var L
我是 javascript、node 和 passportjs 的新手。对不起,如果这是不正确的。我想在我的 Passport 本地策略中使用 3 个参数:用户名、电子邮件、密码。可能吗?如果是怎么办
我在 LocalStrategy 回调中写了 console.log 但它从未调用过。我将 Sequelize 用于 ORM (MySQL)。 Passport .js const LocalStra
我已经阅读了几篇文章,解释了 Passport 身份验证的流程并理解了大部分概念。但是,仍有一些模糊的地方需要解释,以便我可以一劳永逸地了解 Passport。 让我们看看这个实现 的简单示例用户注册
我对 Web 开发比较陌生,我正在使用 NodeJs 和 Express 创建一个网站,在注册时会要求提供用户名和电子邮件。目前,它只接受用户名登录。我正在使用 Passport 和 LocalStr
我想了解 LocalStrategy 是如何工作的。 这是我的服务器文件的一部分: var passport = require('passport'); var express = require(
存有 express Passport LocalStrategy 测试,可能应模拟请求。 test('should Test password Login auth', async (done) =
我遇到一个问题,如果我尝试不使用用户名或密码登录,我的 passport.use 函数根本不会被调用。 下面是我运行 passport.authenticate 的特快专递路线。 app.post('
我的 Express.js 小应用程序中的 Passport.js 一直存在问题:无论我在 LocalStrategy 中放入什么,我总是被重定向到 failureRedirect,显然甚至没有经过
在查看许多 PassportJS 示例时,我对 BasicStrategy 的使用感到非常困惑。 有些人用它来做用户名/密码认证,其他人用它来做clientID/clientSecret认证,还有一些
我对这些策略有点困惑,不清楚它们之间的区别,以及我需要在我的应用程序中使用哪些策略? (甚至一般需要),因为我只需要将用户凭证交换为token,然后打算使用bearer strategy 最佳答案 L
我正在使用passport.js LocalStrategy 来验证用户名和密码。但现在我又多了一个字段来验证其是否处于事件状态:true/false(无论用户是否处于事件状态)。下面的代码显示了用户
我正在学习express框架,其中包括passport、passport-session。现在我收到此错误 类型错误:LocalStrategy 需要验证回调(检查下图): 告诉你,这个错误属于pas
我正在使用 Passport.js 实现本地身份验证。我已经实现了 Github Oauth,这很好,但由于某种原因,本地策略失败并出现上述错误。到目前为止,我找不到任何问题的根源。我读过其他帖子,但
我开始使用 PassportJs/ExpressJs 应用程序进行身份验证 我有两种不同的用户和管理员模型 这是passport.js代码 passport.use('admin', new Loca
当我尝试运行代码时,它给出了引用错误:LocalStrategy 未定义。 这是我第一次使用node.js,但我遇到了困难。我非常感谢您提前提供的帮助。 我将所有代码放在一个片段中,以便您可以轻松浏览
我是一名优秀的程序员,十分优秀!