# EndPoints 1. token 2. revoke 3. is_login - пока не знаю, нужен ли # POST - token ## Request Body * username: обязательный только при grant_type = password * password: обязательный только при grant_type = password * grant_type: password | refresh_token * visitorId: string; ## Request Header * Cookie: используется только при grant_type = refresh_token, устанавливается браузером автоматически после удачного запроса token пользователь вводит username и password, visitorId это уникальный идентификатор браузера или устройства (использую @fingerprintjs/fingerprintjs, пример значения: '7ab69d11f81ad35a7d9ae896a4779070'), если username и password верны, то сервер отправляет клиенту access token и uuid refresh token, uuid refresh token передается в header Set-Cookies. ## Успешный Response ### Response Header * Set-Cookie параметры: * HttpOnly (не возможно прочитать из js); * maxAge время жизни; * path путь при котором используется cookie; ### Response Body * access_token; * type: всегда значение 'bearer'; * возможны дополнительные параметры, например userId, role; пример успешного ответа: ``` Set-Cookie: refreshToken='c84f18a2-c6c7-4850-be15-93f9cbaef3b3'; HttpOnly // для браузера { body: { "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1bmNvbCIsImlhdCI6MTY2NTk4NTQwMSwiZXhwIjoxNjY1OTg5MDAxfQ.sP8qypy1Rl543mtCln6R2aK2TMuJqHmDhF-fAYFnScQ", "type": "bearer" } } ``` ## Error Response ### Response Body * status: number; * message: string; пример ответа при ошибке: ``` { "status": 401, "message": "invalid refresh token" } ``` # POST revoke # Request Body * visitorId: string; ## Request Header * Cookie: устанавливается браузером автоматически после удачного запроса token ответы от сервера анологичны POST-запросу token