我的用例如下:
用户令牌已生成。令牌是从各个字段构建的Json对象。然后转换为String和Base64。
const stringObject = {
elementA: stringA,
elementB: stringB
};
const bufferString = new Buffer(`${JSON.stringify(stringObject)}`);
const encodedAccessToken = bufferString.toString('base64');
现在可以在任何地方解码生成的字符串。 有没有一种方法可以对它进行编码,例如只有我的服务器才能对其进行解码?就像用某种密钥对其进行编码一样。
谢谢。
答案 0 :(得分:1)
您可以使用JWT令牌节点模块:link
编码数据并生成令牌:
var jwt = require('jsonwebtoken');
var token = jwt.sign({ foo: 'bar' }, 'shhhhh');
{foo:'bar'}是您加密的领域
通过相同的密钥shhhhh
// verify a token symmetric
jwt.verify(token, 'shhhhh', function(err, decoded) {
console.log(decoded.foo) // bar
});
答案 1 :(得分:0)
这不能直接回答您的问题,但是我认为您的整体方法是错误的。您试图实现的是拥有会话数据。您无需将该数据发送到客户端再发送回去。这不是一个很好的做法。相反,您应该将此数据存储在服务器上,最好存储在数据库中。
您要做的是创建一个唯一的密钥,该密钥是随机生成的。您将使用此密钥存储用户数据,并将密钥发送给客户端以用于请求。您也可以通过将其设置为Cookie变量来实现。
用户数据可以具有其他字段变量,以更安全地访问。就像客户端的IP一样,可能还有清理时间。
答案 2 :(得分:0)
改用jsonwebtoken。它可以用一个秘密短语加密您的对象。 node-jsonwebtoken
之类的库非常易于使用。