【发布时间】:2019-06-22 08:08:03
【问题描述】:
我正在使用带有 Express 应用程序的 NodeJs 为浏览器和手机开发 Web。我正在使用 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?cookie?其他?)以及使链接(html 中的href 标记)从该存储方法发送令牌的好方法。
【问题讨论】: