【问题标题】:How to use Hash.make(user.password) in adonisjs如何在 adonisjs 中使用 Hash.make(user.password)
【发布时间】:2021-12-30 18:01:24
【问题描述】:

尝试使用来自import Hash from '@ioc:Adonis/Core/Hash'Hash.make(user.password) 加密用户密码

当代码尝试执行存在于@beforesave 中的Hash.make 时,就会出现问题,它给了我一个referenceError。

message:'Hash is not defined'
stack:'ReferenceError: Hash is not defined\n    at eval (eval at hashPassword (/usr/src/app/Models/User.ts:35:9), <anonymous>:2:28)

这是用户模型。


import { DateTime } from 'luxon'
import Hash from '@ioc:Adonis/Core/Hash'
import { column, beforeSave, BaseModel } from '@ioc:Adonis/Lucid/Orm'
import Logger from '@ioc:Adonis/Core/Logger'

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

  @column()
  public email: string

  @column({ columnName: 'first_name' })
  public firstName: string

  @column({ columnName: 'last_name' })
  public lastName: string

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

  @column()
  public rememberMeToken?: string

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

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

  @beforeSave()
  public static async hashPassword(user: User) {
    if (user.$dirty.password) {
      try {
        user.password = await Hash.make(user.password)
      }
      catch (error) {
        Logger.error(error)
      }
    }
  }
}


当调试步骤进入属于哈希依赖项的正确路径时,我认为它在哈希驱动程序中失败了

【问题讨论】:

  • 如果您有解决方案然后发布答案,请勿编辑您的帖子。请阅读How to AskHow to Answer。不要在帖子标题中添加 SOLVED 而是在 2 天内标记您的答案
  • 感谢您的指导。 “在 2 天内标记你的答案”是什么意思?
  • 允许通过单击答案左侧的勾号将答案标记为正确,有关更多信息,请查看tour
  • 很高兴知道,tks!

标签: node.js typescript adonis.js adonisjs-ace lucid


【解决方案1】:

因为我注意到它只发生在 docker 内部,所以问题似乎出在 docker 内部的默认驱动程序上。

我用这个解决了这个问题:

await Hash.use('bcrypt').make(user.password)

或者您可以使用以下方法更改默认哈希驱动器:

default: Env.get('HASH_DRIVER', 'bcrypt')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    相关资源
    最近更新 更多