Skip to content

Instantly share code, notes, and snippets.

View KRostyslav's full-sized avatar
🇺🇦
Ukraine

Ros K. KRostyslav

🇺🇦
Ukraine
View GitHub Profile
var HTTP_STATUS_CODES = {
'CODE_200' : 'OK',
'CODE_201' : 'Created',
'CODE_202' : 'Accepted',
'CODE_203' : 'Non-Authoritative Information',
'CODE_204' : 'No Content',
'CODE_205' : 'Reset Content',
'CODE_206' : 'Partial Content',
'CODE_300' : 'Multiple Choices',
'CODE_301' : 'Moved Permanently',
@KRostyslav
KRostyslav / script to run localTunnel
Last active April 10, 2021 16:23
Run localtunnel
#!/bin/bash
# Script for run localtunnel
# https://github.com/localtunnel/localtunnel
##### Constants
SUBDOMAIN='name'
PORT=8080
@KRostyslav
KRostyslav / PUTvsPOSTvsPATCH.md
Created January 30, 2018 19:10 — forked from zmts/PUTvsPOSTvsPATCH.md
PUT or POST or PATCH?

PUT or POST or PATCH? PATCH!

TL;DR

POST для создания новых ресурсов
POST для остальных кастомных глаголов
PATCH для обновления ресурсов. В 99,99% на обновление уходят не все поля ('created_at' и 'updated_at' так точно)
На PUT можно забить =)
@KRostyslav
KRostyslav / tokens.md
Created January 30, 2018 19:10 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию

Token-Based Authentication(JWT)

Preconditions:

В данной заметке рассматривается работа JWT с симметичным алгоритмом шифрования (HS256/HS384/HS512)

Основы:

Аутентификация(authentication, от греч. αὐθεντικός [authentikos] – реальный, подлинный; от αὐθέντης [authentes] – автор) - это процесс проверки учётных данных пользователя (логин/пароль). Проверка подлинности пользователя путём сравнения введённого им пароля с паролем, сохранённым в базе данных пользователей;

Авторизация(authorization — разрешение, уполномочивание) - это проверка прав пользователя на доступ к определенным ресурсам.

@KRostyslav
KRostyslav / passwords.md
Created January 30, 2018 19:11 — forked from zmts/passwords.md
Про хранение паролей в БД

Про хранение паролей в БД

При создании нового юзера

  1. При регистрации юзер вводит некий пароль
  2. Генерим случайную соль индивилуально для каждого юзера
  3. Создаем хеш на основе введенного юзером пароля и соли
  4. Записываем хеш(не пароль) в БД + соль в отдельном филде

Авторизация существующего юзера

  1. Юзер вводит в поле авторизации некий пароль
@KRostyslav
KRostyslav / tsconfig.json
Last active March 11, 2024 11:57
tsconfig.json с комментариями.
// Файл "tsconfig.json":
// - устанавливает корневой каталог проекта TypeScript;
// - выполняет настройку параметров компиляции;
// - устанавливает файлы проекта.
// Присутствие файла "tsconfig.json" в папке указывает TypeScript, что это корневая папка проекта.
// Внутри "tsconfig.json" указываются настройки компилятора TypeScript и корневые файлы проекта.
// Программа компилятора "tsc" ищет файл "tsconfig.json" сначала в папке, где она расположена, затем поднимается выше и ищет в родительских папках согласно их вложенности друг в друга.
// Команда "tsc --project C:\path\to\my\project\folder" берет файл "tsconfig.json" из папки, расположенной по данному пути.
// Файл "tsconfig.json" может быть полностью пустым, тогда компилятор скомпилирует все файлы с настройками заданными по умолчанию.
// Опции компилятора, перечисленные в командной строке перезаписывают собой опции, заданные в файле "tsconfig.json".
@KRostyslav
KRostyslav / Clear localStorage on close tabs or browser
Last active June 16, 2020 10:04
Clear localStorage on close tabs/browser
((nm, tm) => {
const lStorage = localStorage;
const sStorage = sessionStorage;
const tabId = sStorage.getItem(tm)
|| ((newId) => {
sStorage.setItem(tm, newId);
return newId;
})((Math.random() * 1e8).toFixed());
const update = (setTabValue) => {
let currentValue = JSON.parse(lStorage.getItem(nm) || '{}');
# =================================
# List all node_modules
# Linux.
$ cd documents
$ find . -name "node_modules" -type d -prune -print | xargs du -chs
# Windows
$ cd documents
$ FOR /d /r . %d in (node_modules) DO @IF EXIST "%d" echo %d"
# Prune images
$ docker image prune
or
$ docker image prune -a
# Prune containers
$ docker container prune
# Prune volumes
$ docker volume prune
# First, remove the old version:
# If installed via apt-get
sudo apt-get remove docker-compose
# If installed via curl
sudo rm /usr/local/bin/docker-compose
# If installed via pip
pip uninstall docker-compose