Skip to content

Instantly share code, notes, and snippets.

@wtw24
wtw24 / RowIterator.php
Created August 3, 2018 09:31
RowIterator
<?php
class RowIterator
{
const STOP = 'stop_iteration';
private $db;
private $sqlQuery;
@wtw24
wtw24 / plugin.js
Last active January 17, 2020 07:35
паттерн плагина на основе «моста» фабрики виджетов jQuery UI
// конструктор объекта "widgetName"
// обязательны следующие аргументы
// options: объект опций плагина
// element: DOM элемент плагина
var widgetName = function( options, element ){
this.name = "myWidgetName";
this.options = options;
this.element = element;
this._init();
}
@wtw24
wtw24 / plugin.js
Last active January 17, 2020 07:06
шаблон прототипирования плагинов jQuery
// myObject – объект реализуемой модели (например, машина)
var myObject = {
init: function( options, elem ) {
// объединяем входные параметры с дифолтными
this.options = $.extend( {}, this.options, options );
// Сохраняем указатели на элементы
this.elem = elem;
this.$elem = $(elem);
@wtw24
wtw24 / plugin.js
Last active January 17, 2020 06:57
событийный шаблон jQuery
// В этом паттерне используем события jQuery
// для обеспечения возможностей pub/sub (publish/subscribe).
// Каждый виджет будет порождать и подписываться на разные события
// Данный подход позволит разграничить виджеты,
// обеспечивая их независимое существование
;(function ( $, window, document, undefined ) {
$.widget("ao.eventStatus", {
options: {
},
@wtw24
wtw24 / plugin.js
Last active January 17, 2020 06:54
базовый шаблон неймспейсового паттерна jQuery
;(function ( $ ) {
if (!$.myNamespace) {
$.myNamespace = {};
}
$.myNamespace.myPluginName = function ( el, myFunctionParam, options ) {
// Для предотвращения конфликтов контекста
// используем 'base' вместо 'this'
// для дальнейших обращений к объекту из методов и событий
var base = this;
@wtw24
wtw24 / plugin.js
Last active January 17, 2020 06:45
шаблон фабрики плагина jQuery UI (версий 1.8/9+)
// предваряющие точка с запятой предотвращают ошибки соединений
// с предыдущими скриптами, которые, возможно
// не были верно «закрыты».
;(function ( $, window, document, undefined ) {
// можно определять неймспейс плагина,
// со своими параметрами, к примеру
// $.widget( "namespace.widgetname", (optional)) - наследуемый
// прототип виджета, и прототипирование нового виджета
@wtw24
wtw24 / plugin.js
Last active January 17, 2020 06:46
паттерн простого плагина jQuery
// предваряющие точка с запятой предотвращают ошибки соединений
// с предыдущими скриптами, которые, возможно
// не были верно «закрыты».
;(function ( $, window, document, undefined ) {
// т.к. undefined, по определению ECMAScript 3, не является константой
// здесь мы явно задаем неопределенную переменную
// убеждаясь в ее действительной неопределенности
// В стандарте ES5, undefined уже точно константа
@wtw24
wtw24 / tokens.md
Created June 11, 2018 13:18 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

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

Preconditions:

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

Основы:

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

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