Last major update: 25.08.2020
- Что такое авторизация/аутентификация
- Где хранить токены
- Как ставить куки ?
- Процесс логина
- Процесс рефреш токенов
- Кража токенов/Механизм контроля токенов
/*** function that used as middleware ***/ | |
accessToken: async (name) => { | |
if (typeof document === "undefined") return ""; | |
let token = document.cookie | |
.split(";") | |
.filter((cookie) => cookie.startsWith("token"))[0]; | |
if (!token) { | |
const response = await fetch("/api/refresh", { method: "POST" }); |
I hereby claim:
To claim this, I am signing this object:
{"lastUpload":"2019-10-11T18:55:25.773Z","extensionVersion":"v3.4.3"} |
// ==UserScript== | |
// @name Open profile without open chat | |
// @namespace http://tampermonkey.net/ | |
// @version 0.1 | |
// @description try to take over the world! | |
// @author yukioru | |
// @match https://vk.com/* | |
// @grant none | |
// ==/UserScript== |
I hereby claim:
To claim this, I am signing this object:
nv_disable=1
.Устанавливаем их. Жмём CTRL+P и вводим команды:
ext install vscode-babel-coloring
ext install debugger-for-chrome
ext install vscode-eslint
ext install JavaScriptSnippets
ext install PostCSS
ext install vscode-react-native
let DateBetween = function(startDate, endDate) { | |
let second = 1000; | |
let minute = second * 60; | |
let hour = minute * 60; | |
let day = hour * 24; | |
let distance = endDate - startDate; | |
if (distance < 0) { | |
return "Expired"; | |
} |
import React, {Component} from 'react' | |
import Grid from 'react-bootstrap/lib/Grid' | |
import Row from 'react-bootstrap/lib/Row' | |
import Col from 'react-bootstrap/lib/Col' | |
import Panel from 'react-bootstrap/lib/Panel' | |
import Form from 'react-bootstrap/lib/Form' | |
import FormGroup from 'react-bootstrap/lib/FormGroup' | |
import FormControl from 'react-bootstrap/lib/FormControl' | |
import Button from 'react-bootstrap/lib/Button' |