あなたが認証目的のためにpassport.jsにおける局所戦略を考案することができるpassport.js.
を使用してそれを達成することができます。 NPMパッケージが利用可能です。 passport-localでそれをチェックしてください。
質問から、SQLデータベースを使用しているようです。私はSQLデータベースを使ってパスポートをどのようにユーザに渡すべきかわかりません。 threadには、パスポートをSQLで使用する方法が記載されています。チェックアウトしてください。
私はどのようにmongooseでpassport.jsを使用するかを示すことができます。
//私のユーザモデル:
var mongoose = require('mongoose');
var passportLocalMongoose = require('passport-local-mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({
username: String,
password: String
});
userSchema.plugin(passportLocalMongoose);
var User = mongoose.model('user', userSchema);
module.exports = User;
// app.js
var express = require('express');
var app = express();
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var User = require('/path/to/user/model');
passport.use('user', new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
app.post('/register', function(req, res){
User.register(new User({
username: req.body.username
}),
req.body.password,
function(err, user) {
passport.authenticate('local')(req, res, function() {
return res.status(200).json({
success: true,
message: 'Registration Successful!'
});
});
);
});
app.post('/login', function(req, res){
passport.authenticate('user', function(err, user, info) {
if (err) {
//handle err
}
if (!user) {
//user not found
}
req.logIn(user, function(err) {
if (err) {
//handle err
}
//Login successful!
});
})(req, res, next);
});
でこれを追加するには、あなたはそれが役に立つことを願っ!
「bcryptのデコード」はありません.bcryptは_ハッシング関数です。 – CBroe
入力をbcryptでハッシュし、結果をデータベースに格納されているものと比較します。 – Eamonn
申し訳ありませんが、私はbcryptを比較しました。申し訳ありませんがまだ学習 – user1354934