From 4085964be6219b3879dbfadcfd1658498fa43d97 Mon Sep 17 00:00:00 2001 From: Acbox Date: Sun, 11 Jan 2026 20:01:18 +0800 Subject: [PATCH] fix: login --- packages/api/src/modules/auth/service.ts | 4 ++-- packages/cli/src/core/client.ts | 9 +++++++-- packages/platform-telegram/src/auth.ts | 6 ------ packages/platform-telegram/src/index.ts | 2 +- packages/platform-telegram/src/storage.ts | 3 ++- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/api/src/modules/auth/service.ts b/packages/api/src/modules/auth/service.ts index 3ea64fc7..e4087b81 100644 --- a/packages/api/src/modules/auth/service.ts +++ b/packages/api/src/modules/auth/service.ts @@ -76,11 +76,11 @@ export const validateUser = async (username: string, password: string) => { return null } - // 查询数据库中的用户 + // 查询数据库中的用户(使用 username 而不是 id) const [user] = await db .select() .from(users) - .where(eq(users.id, userId!)) + .where(eq(users.username, username)) if (!user) { return null diff --git a/packages/cli/src/core/client.ts b/packages/cli/src/core/client.ts index 601cac9f..480b53f0 100644 --- a/packages/cli/src/core/client.ts +++ b/packages/cli/src/core/client.ts @@ -7,11 +7,13 @@ import { createClient as createClientApi } from '@memohome/api/client' */ export function createClient(context?: MemoHomeContext) { const ctx = context || getContext() - const storage = ctx.storage - + const storage = ctx.storage + + const apiUrlResult = typeof storage.getApiUrl === 'function' ? storage.getApiUrl() : (storage as unknown as Record).apiUrl + if (apiUrlResult instanceof Promise) { throw new Error('createClient does not support async storage. Use createClientAsync instead.') @@ -23,13 +25,16 @@ export function createClient(context?: MemoHomeContext) { ? storage.getToken(ctx.currentUserId) : null + // Handle async token retrieval if (token instanceof Promise) { throw new Error('createClient does not support async token storage. Use createClientAsync instead.') } + const client = createClientApi(apiUrl, token ?? undefined) + return client } diff --git a/packages/platform-telegram/src/auth.ts b/packages/platform-telegram/src/auth.ts index 1aac246d..c76ee33f 100644 --- a/packages/platform-telegram/src/auth.ts +++ b/packages/platform-telegram/src/auth.ts @@ -13,7 +13,6 @@ export async function handleLogin(ctx: Context) { await ctx.reply('❌ Unable to identify user') return } - console.log('telegramUserId', telegramUserId) // Parse command arguments const args = ctx.message && 'text' in ctx.message @@ -31,7 +30,6 @@ export async function handleLogin(ctx: Context) { const [username, password] = args - try { const storage = await getTokenStorage(telegramUserId) // Attempt login @@ -49,10 +47,6 @@ export async function handleLogin(ctx: Context) { } else { await ctx.reply('❌ Login failed: Invalid response from server') } - } catch (error) { - const message = error instanceof Error ? error.message : 'Unknown error' - await ctx.reply(`❌ Login failed: ${message}`) - } } /** diff --git a/packages/platform-telegram/src/index.ts b/packages/platform-telegram/src/index.ts index a4ed1808..3a1a7b46 100644 --- a/packages/platform-telegram/src/index.ts +++ b/packages/platform-telegram/src/index.ts @@ -35,7 +35,7 @@ export class TelegramPlatform extends BasePlatform { this.registerCommands() // Start bot - await this.bot.launch() + this.bot.launch() console.log('✅ Telegram bot started successfully') } diff --git a/packages/platform-telegram/src/storage.ts b/packages/platform-telegram/src/storage.ts index cd7e0342..aa7bfcc2 100644 --- a/packages/platform-telegram/src/storage.ts +++ b/packages/platform-telegram/src/storage.ts @@ -3,7 +3,8 @@ import Redis from 'ioredis' export const getTokenStorage = async (telegramUserId: string): Promise => { const redis = new Redis(process.env.REDIS_URL || 'redis://localhost:6379') - const token = await redis.get(`memohome:telegram:${telegramUserId}:token`) + const isExists = await redis.exists(`memohome:telegram:${telegramUserId}:token`) + const token = isExists ? await redis.get(`memohome:telegram:${telegramUserId}:token`) : null return { getApiUrl: () => process.env.API_URL || 'http://localhost:7002', setApiUrl: () => {},