# Configurações para múltiplos métodos

Por
Pedro Amorim de Gregori
Em 
Publicado 2024-04-25

Para utilizar vários métodos de autenticação, será necessário realizar algumas mudanças no schema e no lucia para deixar alguns atributos opcionais.

Exemplo baseado na junção dos credentials e OAuth apresentados na documentação.

schema.prisma
model User {
  id              String    @id @default(cuid())
  sessions        Session[]
  username        String
  email           String?   @unique
  hashed_password String?
  github_id       Int?      @unique
}
auth/lucia.ts
//...
export const lucia = new Lucia(adapter, {
	sessionCookie: {
		attributes: {
			secure: process.env.NODE_ENV === "production",
		},
	},
	getUserAttributes: (attributes) => {
		return {
			username: attributes.username,
			email: attributes?.email,
			githubId: attributes?.github_id,
		};
	},
});
//...
interface DatabaseUserAttributes {
	// Atributos do usuário
	username: string;
	email: string | null;
	github_id: number | null;
}
//...

# Mudanças?

Os métodos de SignUp, LogIn, LogOut etc, não necessitam de nenhuma mudança para funcionar com múltiplos métodos.