Node.jsサーバ構造4:passportモジュールとログイン実装
2298 ワード
コード構造
コンソール
app.js
const passport = require('passport');
const passportConfig = require('./passport');
3.作成したモジュールの実行passportConfig(); // 패스포트 설정
app.use(passport.initialize());
app.use(passport.session());
passport/index.js
(ログインプロセス)
1)ルータからの登録要求
2)ルータからpassportを取得する.authenticateメソッドの呼び出し
3)ログインポリシーの実行
4)ログインに成功した場合,ユーザ情報オブジェクトとともにreqを使用する.ログインコール
5)req.ログイン方法はpassportです.SerializeUserを呼び出す
6)req.ユーザーIDのみをセッションに保存
7)ログイン成功
(ログイン後のプロセス)
1)要求を受け取る
2)要求がルータに到達する前にpassport.sessionミドルウェアはpassportです.逆シーケンス化ユーザーメソッドの呼び出し
3)req.セッションに格納されたアイデンティティを使用してデータベース内のユーザーを表示する
4)クエリーを要求するユーザ情報.ユーザーに保存
5)ルータで要求する.userオブジェクトは
const passport = require('passport')
const local = require('./localStrategy');
const kakao = require('./kakaoStrategy');
const User = require('../models/user');
ユーザー情報オブジェクトをセッション(req.sessionオブジェクト)として保存します.ログイン時に実行します.
セッションに保存されたIDを使用してユーザー情報オブジェクトを読み込みます.
各リクエストが実行されます.passport.sessionミドルウェアはこのメソッドを呼び出します.
最初のパラメータ>エラーが発生した場合に使用
2番目の買収>保存するデータ
module.exports = () => {
passport.serializeUser((user, done) => {
done(null, user.id);
});
passport.deserializeUser((id, done) => {
User.findOne({ where: { id } })
.then(user => done(null, user))
.catch(err => done(err));
});
local();
kakao();
};
Reference
この問題について(Node.jsサーバ構造4:passportモジュールとログイン実装), 我々は、より多くの情報をここで見つけました https://velog.io/@nahyunbak/Node.js-서버-구조4-passport-모듈과-로그인-구현テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol