首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在adonisjs中使用Hash.make(user.password)

如何在adonisjs中使用Hash.make(user.password)
EN

Stack Overflow用户
提问于 2021-12-30 18:01:24
回答 1查看 417关注 0票数 2

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

当代码试图执行存在于@ gives中的Hash.make时,问题就会发生,它会给我一个referenceError。

代码语言:javascript
运行
复制
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)

这是用户模型。

代码语言:javascript
运行
复制
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)
      }
    }
  }
}

当调试步骤进入属于散列依赖项的正确路径时,但它在散列驱动程序中失败。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-31 05:28:40

因为我注意到它只发生在码头,问题似乎与默认的驱动程序在码头内。

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

代码语言:javascript
运行
复制
await Hash.use('bcrypt').make(user.password)

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

代码语言:javascript
运行
复制
default: Env.get('HASH_DRIVER', 'bcrypt')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70535168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档