feat: 完成passkey登录认证功能
This commit is contained in:
@@ -28,6 +28,19 @@ CREATE TABLE IF NOT EXISTS api_keys (
|
||||
);
|
||||
`;
|
||||
|
||||
const createPasskeysTableSQL = `
|
||||
CREATE TABLE IF NOT EXISTS passkeys (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
credential_id TEXT UNIQUE NOT NULL, -- Base64URL encoded
|
||||
public_key TEXT NOT NULL, -- Base64URL encoded
|
||||
counter INTEGER NOT NULL,
|
||||
transports TEXT, -- JSON array as string, e.g., '["internal", "usb"]'
|
||||
name TEXT, -- User-provided name for the key
|
||||
created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now')),
|
||||
updated_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now'))
|
||||
);
|
||||
`;
|
||||
|
||||
export const runMigrations = async (db: Database): Promise<void> => {
|
||||
try {
|
||||
// 创建 settings 表 (如果不存在)
|
||||
@@ -74,6 +87,15 @@ export const runMigrations = async (db: Database): Promise<void> => {
|
||||
});
|
||||
});
|
||||
|
||||
// 创建 passkeys 表 (如果不存在)
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
db.run(createPasskeysTableSQL, (err: Error | null) => {
|
||||
if (err) return reject(new Error(`创建 passkeys 表时出错: ${err.message}`));
|
||||
console.log('Passkeys 表已检查/创建。');
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
|
||||
console.log('所有数据库迁移已完成。');
|
||||
} catch (error) {
|
||||
console.error('数据库迁移过程中出错:', error);
|
||||
|
||||
Reference in New Issue
Block a user