NextAuth CredentialsProvider User vs Account

I am trying to add a way to login with credentials to my t3 app and don't have very much experience with setting up prisma schemas. It seems that users that create accounts with the GoogleProvider automatically have both a User and an Account item added to their respective tables, but when I use the CredentialsProvider only a User is getting created (not Account). I'm not sure if I am doing something wrong in my schema or create logic (or if this is even necessarily a problem). My schemas are below, I added a username and password field to the User table. I would appreciate any advice/docs to point me in the right direction, thanks!

// Necessary for Next auth
model Account {
    id                String  @id @default(cuid())
    userId            String
    type              String
    provider          String
    providerAccountId String
    refresh_token     String? // @db.Text
    access_token      String? // @db.Text
    expires_at        Int?
    token_type        String?
    scope             String?
    id_token          String? // @db.Text
    session_state     String?
    user              User    @relation(fields: [userId], references: [id], onDelete: Cascade)

    @@unique([provider, providerAccountId])
}

model Session {
    id           String   @id @default(cuid())
    sessionToken String   @unique
    userId       String
    expires      DateTime
    user         User     @relation(fields: [userId], references: [id], onDelete: Cascade)
}

model User {
    id            String    @id @default(cuid())
    name          String?
    email         String?   @unique
    emailVerified DateTime?
    image         String?
    accounts      Account[]
    sessions      Session[]

    // New fields for local credentials
    username      String?    @unique
    password      String?    // Store the hashed password
}
Was this page helpful?