Node.js表示JWT如何从Web /电话客户端(jsonwebtoken)发出请求并发送令牌

时间:2019-01-29 08:44:37

标签: node.js express jwt

我正在使用带有Express应用程序的NodeJ来开发用于浏览器和手机的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标记)从该存储方法发送令牌的好方法是什么。

1 个答案:

答案 0 :(得分:1)

JWT令牌在前端的存储类型完全取决于您的应用程序要求以及您要如何处理用户的登录/注销会话。

  

请参阅article,了解JWT的用法,如有需要,请鼓掌

如果您不清楚这一点,则可以在关闭浏览器后usr localStorage,因为存储在其中的数据将保留事件-如果不打扰您的需求。

要从链接发送令牌-您可以做两件事-

  1. 动态创建链接并将令牌作为查询参数添加到您的链接
  2. 或者您可以创建onClick事件,该事件从存储中获取令牌并向服务器发送请求

我希望有帮助。