Skip to content

Instantly share code, notes, and snippets.

View evgeniy-logvinov's full-sized avatar

Evgenii Logvinov evgeniy-logvinov

View GitHub Profile
@evgeniy-logvinov
evgeniy-logvinov / tokens.md
Created March 29, 2023 17:01 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Last major update: 25.08.2020

  • Что такое авторизация/аутентификация
  • Где хранить токены
  • Как ставить куки ?
  • Процесс логина
  • Процесс рефреш токенов
  • Кража токенов/Механизм контроля токенов
@evgeniy-logvinov
evgeniy-logvinov / russia
Created March 11, 2022 20:24 — forked from gorborukov/russia
Регионы и города россии в формате JSON
[
{
"region": "Москва и Московская обл.",
"city": "Москва"
},
{
"region": "Москва и Московская обл.",
"city": "Абрамцево"
},
@evgeniy-logvinov
evgeniy-logvinov / deleteAllSessionsUserRouter.js
Last active January 7, 2020 14:58
Delete all user sessions
router.delete('/sessions/delete-all', authenticate(),
async (req, res, next) => {
try {
const refreshToken = getRefreshToken(req);
const user = await userService.deleteAllSessions({ token: req.token, refreshToken });
res.status(200).send(user);
} catch (e) {
next(e);
}
});
@evgeniy-logvinov
evgeniy-logvinov / deleteByIdSessionUser.js
Created January 7, 2020 14:53
Delete Session User By Id
router.delete('/sessions/delete/:id', authenticate(),
async (req, res, next) => {
try {
const id = req.params.id;
const result = await userService.deleteByIdSession({ id, token: req.token });
res.status(200).send(result);
} catch (e) {
next(e);
}
});
@evgeniy-logvinov
evgeniy-logvinov / sessionsUser.js
Created January 7, 2020 14:52
Get user sessions
router.get('/sessions', authenticate(),
async (req, res, next) => {
try {
const user = await userService.getSessions({ token: req.token });
res.status(200).send(user);
} catch (e) {
next(e);
}
});
@evgeniy-logvinov
evgeniy-logvinov / getCurrentUser.js
Created January 7, 2020 14:46
Get current user
router.get('/user', authenticate(),
async (req, res, next) => {
try {
const user = await userService.getUser({ token: req.token });
res.status(200).send(user);
} catch (e) {
next(e);
}
});
const express = require('express');
const { securityService } = requireRoot('lib/services');
const { getRefreshToken, getClientInfo } = requireRoot('lib/utility');
const router = express.Router();
router.post('/signup', async (req, res, next) => {
try {
const { email, password, confirmPassword, emailPreferences, phone, name } = req.body;
const result = await securityService.signup({ email, password, confirmPassword, emailPreferences, phone, name });
router.post('/refresh', async (req, res, next) => {
try {
const refreshToken = getRefreshToken(req);
const newRefreshToken = await securityService.refresh({ refreshToken }, getClientInfo(req));
res.send(newRefreshToken);
} catch (e) {
next(e);
}
});
@evgeniy-logvinov
evgeniy-logvinov / token.js
Created January 7, 2020 14:30
Get new Access Token
router.get('/token', async (req, res, next) => {
try {
const refreshToken = getRefreshToken(req);
const token = await securityService.token({ refreshToken });
res.send(token);
} catch (e) {
next(e);
}
});
@evgeniy-logvinov
evgeniy-logvinov / signout.js
Last active January 7, 2020 14:27
Sign out
router.post('/signout', async (req, res, next) => {
try {
const refreshToken = getRefreshToken(req);
const signout = await securityService.signout({ refreshToken });
res.send(signout);
} catch (e) {
next(e);
}
});