Passport-Local-Mongooseを使用したユーザー認証の実装方法


  1. 必要なパッケージをインストールする まず、Node.jsプロジェクトでPassport-Local-Mongooseを使用するために、以下のパッケージをインストールします。
npm install passport passport-local passport-local-mongoose express-session
  1. データベースのセットアップ Passport-Local-Mongooseは、MongoDBを使用してユーザーデータを保存します。MongoDBへの接続を設定し、データベースとコレクションを作成してください。

  2. ユーザーモデルの作成 Passport-Local-Mongooseを使用するために、ユーザーモデルを作成します。以下のようなコードを使用して、ユーザーモデルを作成できます。

const mongoose = require('mongoose');
const passportLocalMongoose = require('passport-local-mongoose');
const userSchema = new mongoose.Schema({
  username: String,
  password: String
});
userSchema.plugin(passportLocalMongoose);
module.exports = mongoose.model('User', userSchema);
  1. Passportの設定 Passportを設定して、Passport-Local-Mongooseを使用したユーザー認証を有効にします。以下のようなコードを使用して、Passportの設定を行います。
const passport = require('passport');
const User = require('./models/user');
// セッションの設定
passport.use(User.createStrategy());
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
// ExpressアプリケーションにPassportを初期化するミドルウェアを追加
app.use(passport.initialize());
app.use(passport.session());
  1. ルートの設定 ユーザー認証を実装するために、ルート(エンドポイント)を設定します。以下のようなコードを使用して、ログイン、ログアウト、新規登録のルートを設定できます。
app.post('/login', passport.authenticate('local'), (req, res) => {
  // ログイン成功時の処理
});
app.get('/logout', (req, res) => {
  req.logout();
  // ログアウト成功時の処理
});
app.post('/register', (req, res) => {
  User.register({ username: req.body.username }, req.body.password, (err, user) => {
    // 新規登録成功時の処理
  });
});

以上の手順を実行すると、Passport-Local-Mongooseを使用したユーザー認証の実装が完了します。これにより、ユーザーの登録、ログイン、ログアウトなどの認証機能を簡単に実装することができます。