Last major update: 25.08.2020
- Что такое авторизация/аутентификация
- Где хранить токены
- Как ставить куки ?
- Процесс логина
- Процесс рефреш токенов
- Кража токенов/Механизм контроля токенов
| let isRefreshing = false; | |
| let refreshSubscribers = []; | |
| const instance = axios.create({ | |
| baseURL: Config.API_URL, | |
| }); | |
| instance.interceptors.response.use(response => { | |
| return response; | |
| }, error => { |
Предположим, у меня есть список айтемов, где у каждого, например, есть кнопка удаления. По нажатию на кнопку просто вызывается какая-то функция, которая работает с backend API.
function ListItem({ data }) {
return (
<li className="list-item">
{/* ... */}
В общем случае команда git rebase добавляет все коммиты из ветки, на которой вы находитесь, следующими за коммитом, который вы передаете git rebase как аргумент. Если передать первым аргументом ветку, Git найдет последний общий коммит между текущей веткой и целевой веткой и добавит коммиты из текущей в целевую один за одним. Можно представить себе, что git rebase по очереди "накатывает" каждый из коммитов вашей ветки на целевой коммит. При этом у всех "накатанных" коммитов изменяются метаданные (например, родительский коммит), поэтому с точки зрения Git это теперь новые коммиты.
На семинаре мы познакомились с двумя случаями применения git rebase.
Для того, чтобы объединить две ветки в одну (например, когда работа над задачей закончена и нужно влить это задачу в ветку master), часто используют команду git merge. Это команда объединяет ветки путем создания отдельного коммита, у которого два родителя - комм
| function sendMessage() { | |
| var formDataFile = new FormData(); | |
| var result = {} | |
| result['location'] = `Новая заявка с сайта: ${window.location.origin}${window.location.pathname}` | |
| if (document.querySelector('form').hasAttribute('data-form-title')) { | |
| result['vacancy'] = `Вакансия: ${$('form').attr('data-form-title')}` | |
| } |
| ##### Перемещение курсора: | |
| Ctrl + a — переход в начало строки | |
| Ctrl + b — переход на 1 символ назад | |
| Ctrl + c — посылает программе SIGINT. Обычно, прерывает текущее задание | |
| Ctrl + d — удаляет символ под курсором (аналог delete) | |
| Ctrl + e — переход к концу строки | |
| Ctrl + f — переход на 1 символ вперёд | |
| Ctrl + xx — переходит от текущей позиции курса в начало строки и обратно. | |
| Ctrl + p — Предыдущая команда (Стрелка вверх) |
| /* toggle active class */ | |
| $(".some_class").click(function () { | |
| $(".some_class").removeClass("active"); | |
| $(this).addClass("active"); | |
| }); |
| Проверяем, установлен ли node.js : | |
| node -v | |
| ---------------------------------- | |
| Проверяем версию npm : | |
| npm -v | |
| ---------------------------------- | |
| Устанавливаем глобально gulp и npm-check-updates : |
| $browser-context: 16 // Default | |
| @function em($pixels, $context: $browser-context) | |
| @return #{$pixels/$context}em |