私はフレームワークを試して理解するために最後の数ヶ月間ノードで開発していましたが、実際には複数のデバイス用のアプリケーションを作成しようとしています。passport.jsはいつ使用しますか?
すべての投稿と取得リクエストを処理するapiとしてノードプロジェクトを使用します。
別のノードプロジェクトでは、ajaxとsocket.ioのノードapiと通信する反応するWebインターフェイスが必要になります。
モバイルAndroid/iosまたはcordovaでは、私は上記のようにモバイルインターフェイスを使用しています。
私は私の質問の背景について説明したので、私は自分の問題を説明します。
今のところ、bcryptを使用して登録とログインのためのパスワードを暗号化するノードプロジェクトがあります。私はまた、パスポートを使ってセッションを確立し、フラッシュメッセージを作成します。
router.post('/login',
passport.authenticate('local', {successRedirect:'/', failureRedirect:'/users/login',failureFlash: true}),
function(req, res) {
res.redirect('/');
});
passport.use(new LocalStrategy(
function(username, password, done) {
db_functions.getUserByEmail(username,function(error, results) {
if (error) throw error;
bcrypt.compare(password, results[0].password, function(err, res) {
if(res === true){
return done(null,results[0])
} else {
return done(null, false, {message: 'Invalid password'})
}
});
})
}));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
console.log(id)
db_functions.getUserById(id,function(error, results) {
if (error) throw error;
done(error,results[0])
})
});
は、私はAPIとして私のノードのプロジェクトを使用するつもりならば、私はセッションを無効にする必要があり、私はこのために使用することを、ここにhttp://passportjs.org/docs/overview読み:
app.get('/api/users/me',
passport.authenticate('basic', { session: false }),
function(req, res) {
res.json({ id: req.user.id, username: req.user.username });
});
を今、私がセッションを持っていることなぜ、私はパスポートを使い続けなければならないのですか?私はbcryptを使って登録し、ユーザーがログインしたときにパスワードの一致を確認します。削除すると、Webブラウザやモバイルデバイスからの各要求もユーザーとハッシュパスワードを送信する必要がありますか?プロセスの異なるステップ -
これを明確にしていただきありがとうございます。私はjwtについて読んで、私は被験者を今より良く理解する。 –