ユーザーを登録するときに、bryptを使用してハッシュされたパスワードを生成することができます。このパスワードをP#1としましょう。このハッシュされたパスワード(P#1)はデータベースではなく、塩ではなく保存してください。
ユーザーあなたが送信するパスワードのハッシュバージョンを生成し、それをP#2と呼ぶことにしましょう。これで、P#1とP#2を一致させるだけで、一致すればユーザは認証されます。あなたのデータベースの塩。
私は例の助けを借りて簡単な方法でそれを入れようとします。
//私のユーザー・スキーマ
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var bcrypt = require('bcrypt-nodejs');
var userSchema = new Schema({
username: String
password: String,
});
// hash the password
userSchema.methods.generateHash = function(password) {
return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
};
// checking if password is valid
userSchema.methods.validPassword = function(password) {
return bcrypt.compareSync(password, this.password);
};
var User = mongoose.model('user', userSchema);
module.exports = User;
//
var User = require('/path/to/user/model');
app.post('/register', function(req, res) {
var new_user = new User({
username: req.username
});
new_user.password = new_user.generateHash(userInfo.password);
new_user.save();
});
app.post('/login', function(req, res) {
User.findOne({username: req.body.username}, function(err, user) {
if (!user.validPassword(req.body.password)) {
//password did not match
} else {
// password matched. proceed forward
}
});
});
ユーザーを登録し、認証するための私のAPIは、それはあなたのお役に立てば幸い!
nodejsでmongodbを使用していますか?はいの場合はNPMパッケージ( [bcrypt](https://www.npmjs.com/package/bcrypt))があります。あなたは塩を保存せずにパスワードを一致させることができます。 –
nodejsを使用しています。各ユーザーが異なる塩を持ち、塩がどこにも保存されていない場合、保存されたハッシュパスワードと比較するためにパスワードをハッシュするときにどのような塩を使用するのかをどのように知ることができますか? – RUEMACHINE