Skip to content

Error customizing password field in v5 #2497

@rafagouveia

Description

@rafagouveia

I'm using version 5 of AdonisJs, and when I try to change the password column name to "senha (password in Portuguese Brazil)" I get an error that I don't know how to solve, before in v4 I could easily customize this field without problems, I am beginner in node, and I don't know much about TypeScript to the point of knowing how to solve it.

Console Message:

Auth user object must have a password in order to call "verifyPassword"

My Model User

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

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

  @column()
  public usuario: string

  @column()
  public email: string

  @column({ serializeAs: null, columnName: 'senha' })
  public senha: string

  @column()
  public nome: string

  @column()
  public sobrenome: 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 (usuario: Usuario) {
    if (usuario.$dirty.sennha) {
      usuario.senha = await Hash.make(usuario.senha)
    }
  }

}

AuthController:

import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
import Hash from '@ioc:Adonis/Core/Hash'
export default class AuthController {
    public async login ({request, auth}: HttpContextContract){
        const usuario = request.input('username')
        const senha = request.input('password')
        //$2a$10$ccnXPRnKUHz0.Yd/C1xld.a5ZtLD/256CNfsPnfA0RHYM6Dehxxjy
       const token = await auth.use('api').attempt(usuario, senha)
        return {
            ...token.user.toJSON(),
            ...token.toJSON()
        }
    }
}

Expected: change the name of the password column to another customized name.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions