错误:找不到模块“phc-argon2”Adonis Js

Gar*_*io3 3 node.js adonis.js

大家好,我尝试在密码模型中使用哈希,但如果我尝试保存新用户,adonis 向我发送此错误:

错误:找不到模块“phc-argon2”

我在 adonis 的官方文档中找到了但我没有找到一些解决方案......

这是我的模型:

import { DateTime } from 'luxon'
import { BaseModel, column, beforeSave, hasOne, HasOne } from '@ioc:Adonis/Lucid/Orm'
import Hash from '@ioc:Adonis/Core/Hash'
import Profile from 'App/Models/Profile'
import Myvericode from 'App/Models/Myvericode'

export default class User extends BaseModel {
  @column({ isPrimary: true })
  public id: number

  @column.dateTime({ autoCreate: true })
  public createdAt: DateTime

  @column.dateTime({ autoCreate: true, autoUpdate: true })
  public updatedAt: DateTime

  @column()
  public name : string
  
  @column()
  public username : string
  
  @column({ serializeAs: null })
  public password : string

  @column()
  public phonenumber:string

  @column()
  public email : string
  
  @column()
  public isverifiedemail : number

  @hasOne(() => Profile)
  public profile: HasOne<typeof Profile>

  @hasOne(() => Myvericode)
  public vericode: HasOne<typeof Myvericode>

  @beforeSave()
  public static async hashPassword (user: User) {
    if (user.$dirty.password) {
      user.password = await Hash.hash(user.password)
    }
  }

}
Run Code Online (Sandbox Code Playgroud)
我尝试 npm i phc-argon2 但我使用 Linux 操作系统不起作用,感谢您的回答

小智 5

里面config/hash.ts有你要使用的加密器的安装步骤。在这里您可以设置您的驱动程序: default: Env.get('HASH_DRIVER', 'bcrypt') 然后您可以简单地安装所需的驱动程序

氩气2 npm install phc-argon2

对于 bcrypt npm install phc-bcrypt

对我有用


crr*_*rse 3

文档中有关于重大更改的注释:

早些时候,argon2 和 bcrypt 驱动程序依赖于以下软件包。

@phc/argon2
@phc/bcrypt
Run Code Online (Sandbox Code Playgroud)

然而,这些软件包没有得到积极维护,并且存在一些安全漏洞。我们将它们分叉并发布为 phc-bcrypt 和 phc-argon2。因此,请确保从应用程序中删除旧的依赖项,转而使用新的依赖项。

更多信息:https ://preview.adonisjs.com/releases/core/preview-rc-1_7/#hash

如果您受到影响,请检查您的 adonis 5(特别是核心和授权)版本