No funciona así de “simple” con el @hapi/basic, ya que no valida bien, puedes poner cualquier cosa y valida, porque se equivocó en usar la función de validar de users, que no era validate sino validateUser. Así lo hice:
No es necesario require el basic.
Registrar basic
await server.register(require('@hapi/basic'))
Usamos la estrategia:
server.auth.strategy('simple', 'basic', { validate }) server.auth.default('simple')
Llamamos arriba los modelos de users.
const users = require('../models/index').users
y finalmente la función validate.
`async function validate (req, username, password, h) {
let user
try {
user = await users.validateUser({
email: username,
password: password
})
} catch (error) {
server.log('error', error)
}
return {
credentials: user || {},
isValid: (user !== false)
}
}`
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?