私は自分のサイトに新規ユーザーを登録するためにNode/Express/Passportを使用しています。十分に簡単です。私はMongooseを使ってデータを保存しています。Passport - ユーザーとパススルー情報を登録
目的:いくつかの質問に答える人(誰もログインしていない)をしようとしています。 (varsに保存されている回答)その後、私は彼らが新しいアカウントを登録したいと思います。
登録時ユーザー名とパスワードを回答に含まれるデータとともにデータベースに渡したいと思います。だから、目標はワンクリックでこれが起こることです。これはこれまで私が運がなかったのです。助けてくれてありがとう!
var Beliefs = mongoose.model("Beliefs", beliefsSchema);
//handle sign up logic
app.post("/quiz", function(req, res){
var newUser = new User({username: req.body.username});
User.register(newUser, req.body.password, function(err, user){
if(err){
req.flash("error", err.message);
console.log(err)
}
passport.authenticate("local")(req, res, function(){
req.flash("success", "Welcome to JobQuiz " + user.username);
res.redirect("jobquiz");
});
});
});
//Create Answers
Beliefs.create(req.body.beliefs, function(err, newBeliefs){
Beliefs.create(req.body.beliefs2, function(err, newBeliefs2){
if(err){
console.log(err)
} else {
newBeliefs.author.id = req.user._id;
newBeliefs.author.username = req.user.username;
newBeliefs.save();
newBeliefs2.author.id = req.user._id;
newBeliefs2.author.username = req.user.username;
newBeliefs2.save();
console.log("User is:" + req.user.username)
console.log(req.body.beliefs)
res.redirect("/elementsintro");
}
});
});
編集:
はここに私の質問です。このプロセス中にユーザーに情報を保存するにはどうすればいいですか?私の問題は、 私は以下のコードを追加します:
newBeliefs.author.id = req.user._id; newBeliefs.author.username = req.user.username;
...まだユーザーがいないというエラーが表示されます。どのようにこの問題を解決するだろうか?
をありがとうねえ!私はこれをうまく動作させることはできません。私の質問の編集をチェックしてください。コードから "newBeliefs.author.id = req.user._id"などを削除すると、すべて動作します。登録と同時にユーザーに情報を保存するにはどうすればいいですか? – AndrewLeonardi
この信念のコードをPassportの成功関数に入れる必要があります。 – hya
不明なユーザー名のプロパティを読み取ることができないと言う問題があります。 – AndrewLeonardi