44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
import { requestJson } from './apiClient';
|
|
import { setTokenAndLoadMe } from './session';
|
|
|
|
export async function login({ username, password }) {
|
|
const data = await requestJson('/v1/auth/login', {
|
|
method: 'POST',
|
|
body: { username, password }
|
|
});
|
|
const token = data?.token ?? '';
|
|
if (token) await setTokenAndLoadMe(token);
|
|
return token;
|
|
}
|
|
|
|
export async function register({ username, password, confirmPassword, verifyCode }) {
|
|
const data = await requestJson('/v1/auth/register', {
|
|
method: 'POST',
|
|
body: { username, password, confirmPassword, verifyCode }
|
|
});
|
|
const token = data?.token ?? '';
|
|
if (token) await setTokenAndLoadMe(token);
|
|
return token;
|
|
}
|
|
|
|
export async function sendPasswordResetSms({ phone }) {
|
|
return await requestJson('/v1/auth/password/reset/sms', {
|
|
method: 'POST',
|
|
body: { phone }
|
|
});
|
|
}
|
|
|
|
export async function verifyPasswordResetSms({ phone, code }) {
|
|
return await requestJson('/v1/auth/password/reset/verify', {
|
|
method: 'POST',
|
|
body: { phone, code }
|
|
});
|
|
}
|
|
|
|
export async function resetPassword({ resetToken, password, confirmPassword }) {
|
|
return await requestJson('/v1/auth/password/reset', {
|
|
method: 'POST',
|
|
body: { resetToken, password, confirmPassword }
|
|
});
|
|
}
|