2019-06-10 02:26:20 +00:00
|
|
|
import http from '@/api/http';
|
|
|
|
|
2019-06-22 20:33:11 +00:00
|
|
|
export interface LoginResponse {
|
2019-06-10 02:26:20 +00:00
|
|
|
complete: boolean;
|
|
|
|
intended?: string;
|
2019-06-22 20:33:11 +00:00
|
|
|
confirmationToken?: string;
|
2019-06-10 02:26:20 +00:00
|
|
|
}
|
|
|
|
|
2019-12-16 02:05:44 +00:00
|
|
|
export interface LoginData {
|
|
|
|
username: string;
|
|
|
|
password: string;
|
|
|
|
recaptchaData?: string | null;
|
|
|
|
}
|
|
|
|
|
|
|
|
export default ({ username, password, recaptchaData }: LoginData): Promise<LoginResponse> => {
|
2019-06-10 02:26:20 +00:00
|
|
|
return new Promise((resolve, reject) => {
|
2022-05-22 22:16:47 +00:00
|
|
|
http.get('/sanctum/csrf-cookie')
|
|
|
|
.then(() => http.post('/auth/login', {
|
|
|
|
user: username,
|
|
|
|
password,
|
|
|
|
'g-recaptcha-response': recaptchaData,
|
|
|
|
}))
|
2019-06-10 02:26:20 +00:00
|
|
|
.then(response => {
|
|
|
|
if (!(response.data instanceof Object)) {
|
|
|
|
return reject(new Error('An error occurred while processing the login request.'));
|
|
|
|
}
|
|
|
|
|
|
|
|
return resolve({
|
2019-06-22 20:33:11 +00:00
|
|
|
complete: response.data.data.complete,
|
|
|
|
intended: response.data.data.intended || undefined,
|
|
|
|
confirmationToken: response.data.data.confirmation_token || undefined,
|
2019-06-10 02:26:20 +00:00
|
|
|
});
|
|
|
|
})
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
};
|