Skip to main content

TypeORM MySQL

Package: @nauth-toolkit/database-typeorm-mysql Type: Database Package

MySQL/MariaDB entity implementations using TypeORM.

npm install @nauth-toolkit/database-typeorm-mysql

Exports

ExportDescription
getNAuthEntities()User/session entities (always include)
getNAuthTransientStorageEntities()Rate limit/lock entities (only if using DatabaseStorageAdapter)
runNAuthMigrationsRun pending nauth-toolkit migrations. Called automatically during bootstrap.
Individual entitiesUser, Session, MFADevice, SocialProviderSecret, etc.

getNAuthEntities()

Returns core authentication entities.

Entities included:

  • User - User accounts
  • Session - Active sessions
  • LoginAttempt - Login history
  • VerificationToken - Email/phone codes
  • SocialAccount - OAuth accounts
  • ChallengeSession - MFA challenges
  • MFADevice - Registered devices
  • AuthAudit - Audit logs
  • TrustedDevice - Trusted devices
  • SocialProviderSecret - Apple JWT client secret storage
import { getNAuthEntities } from '@nauth-toolkit/database-typeorm-mysql';

TypeOrmModule.forRoot({
type: 'mysql',
entities: [
...getNAuthEntities(),
// Your app entities...
],
})

getNAuthTransientStorageEntities()

Returns transient storage entities. Only use with DatabaseStorageAdapter.

Entities included:

  • RateLimit - Rate limiting
  • StorageLock - Distributed locks
import {
getNAuthEntities,
getNAuthTransientStorageEntities
} from '@nauth-toolkit/database-typeorm-mysql';
import { DatabaseStorageAdapter } from '@nauth-toolkit/storage-database';

// Include storage entities
TypeOrmModule.forRoot({
entities: [
...getNAuthEntities(),
...getNAuthTransientStorageEntities(),
],
})

// Use DatabaseStorageAdapter
AuthModule.forRoot({
storageAdapter: new DatabaseStorageAdapter(),
})

When to Include Storage Entities

Storage AdapterInclude getNAuthTransientStorageEntities()?
RedisStorageAdapterNo
DatabaseStorageAdapterYes (required)