Я использую NodeJs с приложением Express для разработки веб-сайтов для браузеров и мобильных телефонов.Я использую JWT, потому что он, кажется, является стандартом, и я прочитал, что сессии не работают в телефонах (без браузера).У меня есть этот код в бэкэнде, настроенном с использованием «jsonwebtoken»:
'use strict';
const jwt = require('jsonwebtoken');
const path = require('path');
const fs = require('fs');
const privateKEY = fs.readFileSync(path.join(__dirname, 'private.key'), 'utf8');
const publicKEY = fs.readFileSync(path.join(__dirname, 'public.key'), 'utf8');
module.exports = {
sign: (payload) => {
var signOptions = {
expiresIn: process.env.TOKEN_EXPIRE_TIME,
algorithm: "RS256"
};
return jwt.sign(payload, privateKEY, signOptions);
},
verify: (token) => {
var verifyOptions = {
expiresIn: process.env.TOKEN_EXPIRE_TIME,
algorithm: ["RS256"]
};
try {
return jwt.verify(token, publicKEY, verifyOptions);
} catch (err) {
return false;
}
},
decode: (token) => {
return jwt.decode(token, {
complete: true
});
}
};
Но я не знаю, как реализовать внешний интерфейс.Мне нужно знать, как хранить токен для обоих устройств (localStorage? SessionStorage? Куки? Другие?) И как можно сделать ссылки (тег href в html), отправляющие токен из этого метода хранения.