feat: 实现演示验证码和令牌轮换
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
ALTER TABLE "sessions" ADD COLUMN "token_family" UUID;
|
||||
ALTER TABLE "sessions" ADD COLUMN "generation" INTEGER NOT NULL DEFAULT 0;
|
||||
ALTER TABLE "sessions" ADD COLUMN "previous_token_hash" VARCHAR(255);
|
||||
ALTER TABLE "sessions" ADD COLUMN "rotated_at" TIMESTAMPTZ(3);
|
||||
UPDATE "sessions" SET "token_family" = "id" WHERE "token_family" IS NULL;
|
||||
ALTER TABLE "sessions" ALTER COLUMN "token_family" SET NOT NULL;
|
||||
CREATE UNIQUE INDEX "sessions_previous_token_hash_key" ON "sessions"("previous_token_hash");
|
||||
CREATE INDEX "sessions_token_family_idx" ON "sessions"("token_family");
|
||||
+14
-9
@@ -148,17 +148,22 @@ model AuthIdentity {
|
||||
}
|
||||
|
||||
model Session {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
accountId String @map("account_id") @db.Uuid
|
||||
refreshTokenHash String @unique @map("refresh_token_hash") @db.VarChar(255)
|
||||
deviceId String? @map("device_id") @db.VarChar(255)
|
||||
expiresAt DateTime @map("expires_at") @db.Timestamptz(3)
|
||||
revokedAt DateTime? @map("revoked_at") @db.Timestamptz(3)
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
||||
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
||||
account Account @relation(fields: [accountId], references: [id], onDelete: Cascade)
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
accountId String @map("account_id") @db.Uuid
|
||||
refreshTokenHash String @unique @map("refresh_token_hash") @db.VarChar(255)
|
||||
deviceId String? @map("device_id") @db.VarChar(255)
|
||||
expiresAt DateTime @map("expires_at") @db.Timestamptz(3)
|
||||
revokedAt DateTime? @map("revoked_at") @db.Timestamptz(3)
|
||||
tokenFamily String @map("token_family") @db.Uuid
|
||||
generation Int @default(0)
|
||||
previousTokenHash String? @unique @map("previous_token_hash") @db.VarChar(255)
|
||||
rotatedAt DateTime? @map("rotated_at") @db.Timestamptz(3)
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
||||
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
||||
account Account @relation(fields: [accountId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@index([accountId, expiresAt])
|
||||
@@index([tokenFamily])
|
||||
@@map("sessions")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user