fix: clear token after registration

This commit is contained in:
rain
2026-07-10 16:29:31 +08:00
parent 5d195cda45
commit 66f3204349
2 changed files with 51 additions and 7 deletions
+50 -6
View File
@@ -113,17 +113,61 @@ async function run() {
assert.strictEqual(calls[7].data.grantType, 'sms'); assert.strictEqual(calls[7].data.grantType, 'sms');
assert.strictEqual(calls[7].data.tenantId, 'tenant-x'); assert.strictEqual(calls[7].data.tenantId, 'tenant-x');
assert.strictEqual(calls[7].data.clientId, 'client-x'); assert.strictEqual(calls[7].data.clientId, 'client-x');
assert.strictEqual(store.values['token-key'], 'server-token');
store.setItem('token-key', 'existing-token');
const registerResponse = await client.register({
phone: '13900000000',
password: 'register-md5',
nickName: 'new-user',
validToken: 'register-ticket'
});
assert.deepStrictEqual(registerResponse, {
token: 'server-token',
url: '/genealogy/pc/auth/register'
});
assert.strictEqual(calls[8].url, '/genealogy/pc/auth/register');
assert.strictEqual(calls[8].headers.Authorization, undefined);
assert.strictEqual(calls[8].data.grantType, 'password');
assert.strictEqual(calls[8].data.registerSource, 'PC');
assert.strictEqual(store.getItem('token-key'), null);
const failedRegisterStore = createStore({
'token-key': 'existing-token'
});
const failedRegisterClient = GenealogyApi.createClient({
baseUrl: 'https://test-genealogy-api.ddxcjp.cn',
clientId: 'client-x',
tenantId: 'tenant-x',
tokenKey: 'token-key',
tokenStore: failedRegisterStore,
axiosInstance: {
request: async () => {
throw new Error('register failed');
}
}
});
await assert.rejects(
failedRegisterClient.register({
phone: '13900000001',
password: 'register-md5',
nickName: 'failed-user',
validToken: 'register-ticket'
}),
/register failed/
);
assert.strictEqual(failedRegisterStore.getItem('token-key'), 'existing-token');
await client.sendSmsCode({ await client.sendSmsCode({
sceneCode: 'WEB_H5_LOGIN', sceneCode: 'WEB_H5_LOGIN',
phone: '13800000000', phone: '13800000000',
validToken: 'captcha-ticket' validToken: 'captcha-ticket'
}); });
assert.strictEqual(calls[8].url, '/genealogy/pc/auth/sms/code'); assert.strictEqual(calls[9].url, '/genealogy/pc/auth/sms/code');
assert.strictEqual(calls[8].headers.Authorization, undefined); assert.strictEqual(calls[9].headers.Authorization, undefined);
assert.strictEqual(calls[8].data.grantType, 'sms'); assert.strictEqual(calls[9].data.grantType, 'sms');
assert.strictEqual(calls[8].data.sceneCode, 'WEB_H5_LOGIN'); assert.strictEqual(calls[9].data.sceneCode, 'WEB_H5_LOGIN');
assert.strictEqual(calls[8].data.validToken, 'captcha-ticket'); assert.strictEqual(calls[9].data.validToken, 'captcha-ticket');
assert.throws( assert.throws(
() => client.listGenealogies(), () => client.listGenealogies(),
@@ -133,7 +177,7 @@ async function run() {
() => client.publicGenealogies(), () => client.publicGenealogies(),
(error) => error.code === 'PC_API_NOT_AVAILABLE' (error) => error.code === 'PC_API_NOT_AVAILABLE'
); );
assert.strictEqual(calls.length, 9); assert.strictEqual(calls.length, 10);
console.log('api-client tests passed'); console.log('api-client tests passed');
} }
+1 -1
View File
@@ -178,7 +178,7 @@
auth: false, auth: false,
body: Object.assign({ grantType: 'password', registerSource: 'PC' }, withTenant(body)) body: Object.assign({ grantType: 'password', registerSource: 'PC' }, withTenant(body))
}); });
setToken(getTokenFromResponse(data)); clearToken();
return data; return data;
} }