af07a73a07
- Added a new `LoginAttempt` model to track login attempts, including rate limiting and lockout functionality. - Introduced environment variables for configuring login rate limits and maximum failures. - Updated the authentication middleware to handle login attempts and enforce rate limits. - Enhanced the user model with indexing for username and email for improved lookup performance. - Modified the `.env.example` file to include new optional authentication settings. - Updated integration tests to cover new login attempt features and authentication state management.
20 lines
673 B
SQL
20 lines
673 B
SQL
-- CreateTable
|
|
CREATE TABLE "LoginAttempt" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"identifier" TEXT NOT NULL,
|
|
"ip" TEXT NOT NULL,
|
|
"count" INTEGER NOT NULL DEFAULT 0,
|
|
"failures" INTEGER NOT NULL DEFAULT 0,
|
|
"resetTime" DATETIME NOT NULL,
|
|
"lockoutUntil" DATETIME,
|
|
"lastAttempt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "LoginAttempt_identifier_ip_key" ON "LoginAttempt"("identifier", "ip");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "LoginAttempt_lastAttempt_idx" ON "LoginAttempt"("lastAttempt");
|