A2m
A2m
BABetter Auth
Created by A2m on 3/7/2025 in #help
Invalid body parameters
It was the middleware, it works now, I'll put it here if anyone has any problems with AdonisJS.
import type { HttpContext } from '@adonisjs/core/http'
import type { NextFn } from '@adonisjs/core/types/http'
import { auth } from '../utils/auth.js'
import logger from '@adonisjs/core/services/logger'
import { toNodeHandler } from 'better-auth/node'

export default class BetterAuthMiddleware {
private authHandler: ReturnType<typeof toNodeHandler>

constructor() {
this.authHandler = toNodeHandler(auth)
}

async handle(ctx: HttpContext, next: NextFn) {
const { request, response } = ctx

if (!request.url().startsWith('/api/auth')) {
return next()
}

try {
logger.info('Better Auth request received', {
url: request.url(),
method: request.method(),
contentType: request.header('content-type')
})

const req = request.request
req.url = request.url()
;(req as any).originalUrl = request.url()

await this.authHandler(req, response.response)


} catch (error) {
logger.error('Error in Better Auth middleware', error)

try {
return response.status(500).send({
error: 'Error processing Better Auth request',
message: error.message
})
} catch (e) {
logger.error('Impossible to send error response', e)
}
}
}
}
import type { HttpContext } from '@adonisjs/core/http'
import type { NextFn } from '@adonisjs/core/types/http'
import { auth } from '../utils/auth.js'
import logger from '@adonisjs/core/services/logger'
import { toNodeHandler } from 'better-auth/node'

export default class BetterAuthMiddleware {
private authHandler: ReturnType<typeof toNodeHandler>

constructor() {
this.authHandler = toNodeHandler(auth)
}

async handle(ctx: HttpContext, next: NextFn) {
const { request, response } = ctx

if (!request.url().startsWith('/api/auth')) {
return next()
}

try {
logger.info('Better Auth request received', {
url: request.url(),
method: request.method(),
contentType: request.header('content-type')
})

const req = request.request
req.url = request.url()
;(req as any).originalUrl = request.url()

await this.authHandler(req, response.response)


} catch (error) {
logger.error('Error in Better Auth middleware', error)

try {
return response.status(500).send({
error: 'Error processing Better Auth request',
message: error.message
})
} catch (e) {
logger.error('Impossible to send error response', e)
}
}
}
}
6 replies
BABetter Auth
Created by A2m on 3/7/2025 in #help
Invalid body parameters
I make requests via Postman, the application/json content type is already set as standard. In fact on the nextjs backend it works fine but on the Adonis backend I get this error, maybe the middleware ?
6 replies