Skip to content

Instantly share code, notes, and snippets.

@monochromer
monochromer / skip-link-focus-fix.js
Last active March 11, 2020 20:11
Fix skip link
@monochromer
monochromer / tokens.md
Created November 28, 2019 18:42 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

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

Last major update: 21.10.2019

Основы:

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

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

Например после аутентификации юзер sasha получает право обращатся и получать от ресурса "super.com/vip" некие данные. Во время обращения юзера sasha к ресурсу vip система авторизации проверит имеет ли право юзер обращатся к этому ресурсу (проще говоря переходить по неким разрешенным ссылкам)

@monochromer
monochromer / index.js
Last active July 27, 2020 18:59
Walk directory on node.js without recursion
const path = require('path')
const fs = require('fs').promises
async function walk(fsPath, callback) {
const node = {
path: fsPath,
stat: await fs.stat(fsPath)
}
const stack = [node]
let item
@monochromer
monochromer / ComponentHelper.rb
Last active April 24, 2023 16:31
Ruby on Rails view component helpers
# https://www.innoq.com/en/blog/rails-frontend-components/
# app/helpers
module ComponentHelper
def component(name, data: {}, &block)
render_component("#{name}/#{name}", { data: data }, &block)
end
private
def render_component(name, locals, &block)
@monochromer
monochromer / hash-lib.js
Last active July 18, 2022 19:19
node.js hashing files
const crypto = require('crypto');
const fs = require('fs');
/**
* @typedef {object} HashFileOptions
* @prop {string} [algorithm = 'md5'] алгоритм хеширования
* @prop {crypto.HexBase64Latin1Encoding} [encoding = 'hex'] предствалние конечного хеша
*/
/**
@monochromer
monochromer / responsive-email-image.html
Last active August 16, 2019 09:04
responsive email html image
<!--[if gte MSO 9]>
<table width="200"><tr><td>
<![endif]-->
<table align="center" width="100%" style="max-width: 200px;">
<tr>
<td align="center" style="text-align: center">
<img src="//link.com" alt="" width="200" height="140" style="display: block; border: 0; width: 100%; height: auto;">
</td>
</tr>
</table>
@monochromer
monochromer / es6-proxy.md
Created June 19, 2019 14:09
A practical guide to Javascript Proxy (ES6 Proxy)