LoginSignup
2
3

More than 5 years have passed since last update.

passport.deserializeUserがたくさん呼び出される場合の対処法

Posted at

passport.deserializeUserがたくさん呼び出される場合の対処法

Quick Fix

publicフォルダ等の静的コンテンツパス設定をPassportの設定より先に行うよう修正する。

[NG]
// passportの設定
app.configure(function() {
  app.use(express.cookieParser());
  app.use(express.bodyParser());
  app.use(express.session({ secret: 'keyboard cat' }));
  app.use(passport.initialize());
  app.use(passport.session());
  app.use(app.router);
});

// 静的コンテンツの設定
app.use(express.static('public'));
[OK]
app.configure(function() {
  app.use(express.static('public')); // 静的コンテンツの設定
  app.use(express.cookieParser());
  app.use(express.bodyParser());
  app.use(express.session({ secret: 'keyboard cat' }));
  app.use(passport.initialize());
  app.use(passport.session());
  app.use(app.router);
});

環境

  • Nodejs
  • Expressjs
  • passportjs

現象

本当は1アクセスに1回だけ呼び出される予定なのに、何回も呼び出されてしまう。

原因

Passportの設定の後に静的コンテンツパスの設定を行っているため、静的コンテンツへのアクセスがある時にもPassportの処理が呼び出されている。

対処法

Passportの設定をする前に、静的コンテンツパス設定を行うように修正することで解消する。

参考サイト

passport.deserializeUser called multiple times
Passport:middleware

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3