フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

express +sequelizeログイン画面の実装

はじめに

  • 前回の記事でReactでログイン画面を実装することを記載しましたが今度はログイン認証のバックエンド側の処理を実装する px-wing.hatenablog.com

コード

  • 基本的にはPOSTされたデータを
router.post('/login', async (req, res, next) => {
  let error_msg = []
  db.user.findOne({
    where: {
      mail_address: req.body.mailAddress,
      user_name: req.body.userName, 
      password: req.body.password
    }
  }).then(function (user) {
    const token = createToken(user)
    user.token = token
    user.save()
    user ? res.json({success: "ログイン出来ました!",error: '',user}) : res.json({success: "ログイン出来ません",error: '',user: {}}) 
 }).catch((error)=>{
      logger.app.debug(error)
      res.json({success: 'ログインに失敗しました。',error: JSON.stringify(error_msg),user: {}});
    })
  }
);
  • ログイン時に再度トークンを再作成してトークン情報をアップデートする
const createToken = (user) => {
  return jwt.sign(
    {user_name: user.userName, 
      password: user.password,
      birth_day: user.birthDay,
      sex: user.sex,
      password: user.password}
  , config.secret_key, { expiresIn: '1h' });
}