fix(deps): update scrypt import to ESM
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
This commit is contained in:
@@ -1,14 +1,19 @@
|
||||
'use strict'
|
||||
|
||||
import Scrypt from 'scrypt-kdf'
|
||||
|
||||
import { createRequire } from 'module'
|
||||
const require = createRequire(import.meta.url)
|
||||
|
||||
// external modules
|
||||
const Sequelize = require('sequelize')
|
||||
const scrypt = require('scrypt-kdf')
|
||||
const filterXSS = require('xss')
|
||||
|
||||
// core
|
||||
const logger = require('../logger')
|
||||
const { generateAvatarURL } = require('../letter-avatars')
|
||||
|
||||
module.exports = function (sequelize, DataTypes) {
|
||||
function UserModel (sequelize, DataTypes) {
|
||||
const User = sequelize.define('User', {
|
||||
id: {
|
||||
type: DataTypes.UUID,
|
||||
@@ -46,8 +51,13 @@ module.exports = function (sequelize, DataTypes) {
|
||||
}
|
||||
})
|
||||
|
||||
User.prototype.verifyPassword = function (attempt) {
|
||||
return scrypt.verify(Buffer.from(this.password, 'hex'), attempt)
|
||||
User.prototype.verifyPassword = async function (attempt) {
|
||||
try {
|
||||
return (await Scrypt.verify(Buffer.from(this.password, 'hex'), attempt))
|
||||
} catch (error) {
|
||||
logger.error(`Error during login: ${error}`)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
User.associate = function (models) {
|
||||
@@ -151,7 +161,7 @@ module.exports = function (sequelize, DataTypes) {
|
||||
}
|
||||
}
|
||||
|
||||
function updatePasswordHashHook (user, options) {
|
||||
async function updatePasswordHashHook (user, options) {
|
||||
// suggested way to hash passwords to be able to do this asynchronously:
|
||||
// @see https://github.com/sequelize/sequelize/issues/1821#issuecomment-44265819
|
||||
|
||||
@@ -159,7 +169,7 @@ module.exports = function (sequelize, DataTypes) {
|
||||
return Promise.resolve()
|
||||
}
|
||||
|
||||
return scrypt.kdf(user.getDataValue('password'), { logN: 15 }).then(keyBuf => {
|
||||
return Scrypt.kdf(user.getDataValue('password'), { logN: 15 }).then(keyBuf => {
|
||||
user.setDataValue('password', keyBuf.toString('hex'))
|
||||
})
|
||||
}
|
||||
@@ -169,3 +179,5 @@ module.exports = function (sequelize, DataTypes) {
|
||||
|
||||
return User
|
||||
}
|
||||
|
||||
export default UserModel
|
||||
|
||||
Reference in New Issue
Block a user