HM-83. Добавлены классы для работы с авторизацией (#36)
This commit is contained in:
45
src/api/AuthServiceAPI.js
Normal file
45
src/api/AuthServiceAPI.js
Normal file
@ -0,0 +1,45 @@
|
||||
import axios from 'axios';
|
||||
|
||||
import {AUTH_SERVICE, AUTH_ENDPOINTS} from './consts';
|
||||
import tokenApi from './TokenAPI';
|
||||
|
||||
/**
|
||||
* Api для выполнения запросов авторизации
|
||||
* @class AuthServiceApi
|
||||
*/
|
||||
class AuthServiceApi {
|
||||
constructor () {
|
||||
this.URL = AUTH_SERVICE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Выполняет запрос авторизации и если он успешен, то добавляет токены в память
|
||||
* @param {string} login - логин пользователя
|
||||
* @param {string} password - пароль пользователя
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
auth = (login, password) => {
|
||||
return axios.post(`${this.URL}${AUTH_ENDPOINTS.AUTH}`, {
|
||||
login,
|
||||
password,
|
||||
}).then(({data: tokens}) => {
|
||||
tokenApi.saveTokenPair(tokens);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Пытается реврешнуть пару токенов и в случае успеха обновляет их в памяти
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
refresh = () => {
|
||||
const refresh_token = tokenApi.getRefreshToken();
|
||||
return axios.post(`${this.URL}${AUTH_ENDPOINTS.REFRESH}`, {refresh_token})
|
||||
.then(({data: tokens}) => {
|
||||
tokenApi.saveTokenPair(tokens);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const authServiceApi = new AuthServiceApi();
|
||||
|
||||
export default authServiceApi;
|
||||
Reference in New Issue
Block a user