express-session
5387 ワード
ログイン機能を実装する前に、セッションの概念を理解しておきましょう.セッションはCookieと似ていますが、ブラウザではサーバが管理するセッションとは異なります.セッションはCookieよりも安全で、通常はログインなどの操作に使用されます.セッションを使用するには、expressjsがexpress-sessionを推奨します.
端末への入力
セッションを使用するには、オプションを渡す必要があります.必要に応じて、以下と異なるように設定できます.そうでなければ、同じように設定したほうがいいです. secret
セッションにidを送信するときにidを暗号化するために使用されるランダム文字列.他の人が見ても何の数字なのか分からない.特に、ランダム文字列を知らない場合は、復号化が困難です.ランダム文字列は露出できません.envに入れるべきでしょう?
セッションを使用できるようになりましたセッションはreqのプロパティとして追加されます.たとえば、「/」に接続したときにセッションを出力してみます.
設定
端末への入力
%npm insatll express-session
app.js
セッションを使用するには、オプションを渡す必要があります.必要に応じて、以下と異なるように設定できます.そうでなければ、同じように設定したほうがいいです.
セッションにidを送信するときにidを暗号化するために使用されるランダム文字列.他の人が見ても何の数字なのか分からない.特に、ランダム文字列を知らない場合は、復号化が困難です.ランダム文字列は露出できません.envに入れるべきでしょう?
import dotenv from 'dotenv';
import session from 'express-session';
dotenv.config();
app.use(session({
secret: process.env.SECRET,
resave: false,
saveUninitialized: true
}));
ビデオコントローラの例1
セッションを使用できるようになりましたセッションはreqのプロパティとして追加されます.たとえば、「/」に接続したときにセッションを出力してみます.
export const home = (req, res) => {
console.log(req.session);
res.send('home');
}
これで、クライアントがホームにリクエストを送信すると、コンソールは次の操作を実行できます.ビデオコントローラの例2
export const home = (req, res) => {
if(req.session.num === undefined){
req.session.num = 1;
}else{
req.session.num++;
}
console.log(req.session.num);
res.send('home');
}
上記のコードを使用すると,ユーザは家庭にアクセスするたびにreqを要求する.session.numは1を大きくし、最終的に接続数を出力します.サーバを再起動すると、セッションに格納されている値は消えます.もう一度1から始めようサーバが再起動するかどうかにかかわらず、この値を保持する場合は、データベースまたはファイルに保存する必要があります.Reference
この問題について(express-session), 我々は、より多くの情報をここで見つけました https://velog.io/@since-1994/PassportJS-express-sessionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol