sequelize+express rest api中的用户身份验证

yvgpqqbh  于 2021-06-19  发布在  Mysql
关注(0)|答案(0)|浏览(186)

作为node.js的后端开发人员,我是一个初学者,我有责任构建一个restapi来处理乒乓球比赛。
问题是其中一个前提要求用户身份验证。我正在使用mysql(测试的前提之一)并将其续写为orm。
我用sequelize定义了一个用户模型,就像这样

const { hashSync, genSaltSync } = require('bcrypt-nodejs');

module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define('User', {
    name: DataTypes.STRING,
    email: DataTypes.STRING,
    password: DataTypes.STRING
  }, {
    onDelete: 'CASCADE',
    hooks: {
      beforeCreate(user) {
        const salt = genSaltSync(10);
        user.password = hashSync(user.password, salt);
      },
    }
  });
  User.associate = function({ Match, Tournament }) {
    this.hasMany(Match, { as: 'matches', onDelete: 'CASCADE' });
    this.belongsToMany(Tournament, { foreignKey: 'userId', through:'User_Tournament', as: 'tournaments', onDelete: 'CASCADE' });
  };
  return User;
};

因为我需要一个基于令牌的策略*来处理用户的传入请求,所以我想要一些关于如何将这些信息很好地存储到数据库中的建议。我考虑过一个用户令牌表,但不知道这是否是一个好的选择。

  • 不需要用户会话,但需要在响应头中设置令牌。

欢迎提出各种建议。
谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题