node.js passport-google-oauth2でのパラメタ追加方法

Posted by roadman on Tuesday, November 7, 2017

TOC

説明

  • node.jsでoauth認証を実装する場合、passport(+使いたいサービスのoauth module)でやることが多いと思います。

  • googleのoauthでやりたい場合は、passport-google-oauth2になりますが、その時に、デフォルト以外のgoogle oauthのパラメタを付けたい場合は、passport.authenticateのoptionsに追加します。

方法

  • 以下はgoogle oauth認証時に必ずアカウント選択を出したいので、promptパラメタを追加です。
  • 指定しないと、ブラウザでgoogleアカウントを1つだけ認証済みの場合はアカウント選択なしで認証完了してしまいます。
app.post('/login',
  passport.authenticate('google', {
    successRedirect: '/',
    failureRedirect: '/login'
    prompt: 'select_account'	  // select_accountはアカウント選択を出す
  }
);
  • ちなみに、各サービスの認証の追加パラメタはauhenticateのoptionsのtypescriptの定義(interface AuthenticateOptions)に含まれていないので、typescriptのエラーになります。
  • これ回避する方法ないかな…