Skip to main content
Glama
refresh-token.entity.ts1.48 kB
import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, ManyToOne, JoinColumn, Index, } from 'typeorm'; import { User } from './user.entity'; @Entity('refresh_tokens') @Index(['token'], { unique: true }) @Index(['userId']) @Index(['expiresAt']) export class RefreshToken { @PrimaryGeneratedColumn('uuid') id: string; @Column({ type: 'varchar', length: 500, unique: true }) token: string; @Column({ type: 'uuid' }) userId: string; @ManyToOne(() => User, { onDelete: 'CASCADE' }) @JoinColumn({ name: 'userId' }) user: User; @Column({ type: 'timestamp' }) expiresAt: Date; @Column({ type: 'boolean', default: false }) isRevoked: boolean; @Column({ type: 'varchar', length: 255, nullable: true }) deviceInfo?: string; @Column({ type: 'inet', nullable: true }) ipAddress?: string; @Column({ type: 'varchar', length: 500, nullable: true }) userAgent?: string; @Column({ type: 'timestamp', nullable: true }) lastUsedAt?: Date; @CreateDateColumn() createdAt: Date; @UpdateDateColumn() updatedAt: Date; // 检查令牌是否过期 get isExpired(): boolean { return new Date() > this.expiresAt; } // 检查令牌是否有效 get isValid(): boolean { return !this.isRevoked && !this.isExpired; } // 撤销令牌 revoke(): void { this.isRevoked = true; } // 更新最后使用时间 updateLastUsed(): void { this.lastUsedAt = new Date(); } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zaizaizhao/mcp-swagger-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server