This is an automated email from the ASF dual-hosted git repository. lizhimins pushed a commit to branch rocketmq-studio in repository https://gitbox.apache.org/repos/asf/rocketmq-dashboard.git
commit 702f0f6600569c36e84f064aee6470f1a0149f1f Author: wizcraft_kris <[email protected]> AuthorDate: Fri Jul 24 13:41:40 2026 +0800 fix: align login response contract (#492) Align frontend LoginResponse type with backend LoginVO contract: change flat username/role to nested user.username/admin structure. --- web/src/api/auth.test.ts | 12 ++++++++---- web/src/api/auth.ts | 7 +++++-- web/src/pages/login/index.tsx | 3 +-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/web/src/api/auth.test.ts b/web/src/api/auth.test.ts index 6db27b12..c0fcc8fd 100644 --- a/web/src/api/auth.test.ts +++ b/web/src/api/auth.test.ts @@ -40,8 +40,11 @@ describe('Auth API', () => { it('login should post credentials and return token data', async () => { const mockResponse = { token: 'jwt-token-123', - username: 'admin', - role: 'ADMIN', + expiresIn: 86400, + user: { + username: 'admin', + admin: true, + }, }; mock.onPost('/auth/login', { username: 'admin', password: 'secret' }).reply(200, { data: mockResponse, @@ -50,8 +53,9 @@ describe('Auth API', () => { const result = await login('admin', 'secret'); expect(result).toEqual(mockResponse); expect(result.token).toBe('jwt-token-123'); - expect(result.username).toBe('admin'); - expect(result.role).toBe('ADMIN'); + expect(result.expiresIn).toBe(86400); + expect(result.user.username).toBe('admin'); + expect(result.user.admin).toBe(true); }); it('login should handle error response', async () => { diff --git a/web/src/api/auth.ts b/web/src/api/auth.ts index 5d1530d6..5abeb807 100644 --- a/web/src/api/auth.ts +++ b/web/src/api/auth.ts @@ -25,8 +25,11 @@ export interface LoginRequest { export interface LoginResponse { token: string; - username: string; - role: string; + expiresIn: number; + user: { + username: string; + admin: boolean; + }; } // ─── Auth ─────────────────────────────────────────────────────── diff --git a/web/src/pages/login/index.tsx b/web/src/pages/login/index.tsx index 715201c1..37ceca17 100644 --- a/web/src/pages/login/index.tsx +++ b/web/src/pages/login/index.tsx @@ -41,8 +41,7 @@ const LoginPage = () => { setLoading(true); try { const data = await loginApi(values.username, values.password); - authLogin(data.token, data.username); - localStorage.setItem('userrole', data.role); + authLogin(data.token, data.user.username); message.success(t('login.success')); navigate('/', { replace: true }); } catch (err: unknown) {
