diff --git a/src/apps/napcat-webui-gateway/presentation/internal-session.controller.ts b/src/apps/napcat-webui-gateway/presentation/internal-session.controller.ts index 33daa16..4f7b5ab 100644 --- a/src/apps/napcat-webui-gateway/presentation/internal-session.controller.ts +++ b/src/apps/napcat-webui-gateway/presentation/internal-session.controller.ts @@ -36,7 +36,7 @@ export class InternalSessionController { * Creates a Gateway session and returns only browser-safe bootstrap metadata. * @param secret - Shared API-to-Gateway secret header. * @param body - Internal create-session payload from the API service. - * @returns Browser-safe session id, expiry, and relative iframe URL. + * @returns Browser-safe session id, expiry, relative iframe URL, and display metadata. */ @Post('sessions') async createSession( @@ -48,6 +48,13 @@ export class InternalSessionController { const ticket = await this.ticketService.issue(session.sessionId); return { + account: { + accountId: session.accountId, + selfId: session.selfId, + }, + container: { + containerName: session.containerName, + }, expiresAt: session.expiresAt, iframeUrl: `${this.config.publicSessionPrefix()}/${ session.sessionId diff --git a/test/apps/napcat-webui-gateway/session-store.spec.ts b/test/apps/napcat-webui-gateway/session-store.spec.ts index a04f71e..0dccb8b 100644 --- a/test/apps/napcat-webui-gateway/session-store.spec.ts +++ b/test/apps/napcat-webui-gateway/session-store.spec.ts @@ -812,6 +812,13 @@ describe('InternalSessionController', () => { .expect(HttpStatus.CREATED); expect(response.body).toEqual({ + account: { + accountId: 'account-1', + selfId: '1914728559', + }, + container: { + containerName: 'kt-qqbot-napcat-1914728559', + }, expiresAt: 61_000, iframeUrl: expect.stringMatching( /^\/napcat-webui\/session\/[0-9a-f-]+\/bootstrap\?ticket=[A-Za-z0-9_-]+$/,