如何保存 jwt 令牌以在下一个请求中使用?在nodejs中

Posted

技术标签:

【中文标题】如何保存 jwt 令牌以在下一个请求中使用?在nodejs中【英文标题】:How can I save jwt token for use in the next request? in nodejs 【发布时间】:2020-11-26 05:13:21 【问题描述】:

我创建了一个登录函数,它使用参数电子邮件和密码调用后端,以接收 JWT。我已经尝试将 jwt 值保存在一个变量中,以便在下一个请求中使用。

这是我开发的方法,它有一个发送邮件和传递参数的post请求。

async function main() 
    const data = await login("mail", "pass")
    console.log(data);
    return data


async function login(mail, pass) 
    const url = "https://inventario/api/login";
    var data = JSON.stringify( "email": mail, "password": pass );

    var requestOptions = 
        method: 'POST',
        body: data,
        headers: 
            "Content-type": "application/json; charset=UTF-8"
        
    
    
    const response = await fetch(url, requestOptions)
    const json = await response.json()
    console.log(json)
    return json;

我这样调用函数

var tokentest = require("./Tokentest.js");
var key = tokentest.main();
console.log(key)

【问题讨论】:

【参考方案1】:

根据您的最终用例,有多种方法可以做到这一点,但我建议先将其保存到 json 文件中。

const fs = require('fs').promises;

// Write token to file
await fs.writeFile(path.join(__dirname, './token.json'), JSON.stringify(key));

// Use it again by reading the file and passing it to a variable
const rawData = await fs.readFile(path.join(__dirname, './token.json'), 'utf8');
const token = JSON.parse(rawData);

【讨论】:

以上是关于如何保存 jwt 令牌以在下一个请求中使用?在nodejs中的主要内容,如果未能解决你的问题,请参考以下文章

如何验证请求标头、JWT 令牌

如果用于身份验证的 JWT 令牌保存在 HTTP-Only cookie 中,您如何从 cookie 中读取它以便我可以将其包含在请求标头中?

如果用于认证的JWT令牌保存在HTTP-Only cookie中,你如何从cookie中读取它,以便我可以在请求头中包含它?

如何保护JWT令牌

如何在 vue 中存储、管理 REST API JWT 身份验证令牌?

如何保护 JWT 令牌