HM-83. Добавлены классы для работы с авторизацией (#36)

This commit is contained in:
Nikolay
2020-07-30 08:32:56 +03:00
committed by GitHub
parent a9282a38e5
commit d957d2d208
6 changed files with 321 additions and 3 deletions

45
src/api/AuthServiceAPI.js Normal file
View 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;