Tag: 承载令牌

为api访问生成安全令牌

我需要生成一个安全令牌访问一个API。 用户将auth和成功auth我需要生成一个令牌。 重要提示:我有一个要求,我需要能够随时撤销用户对api的访问权限。 选项1: 我可以生成一个随机string,并将其用作令牌。 将令牌和用户存储在数据库中。 当用户通过令牌时,我检查数据库的令牌,如果它存在去… 这使我能够通过删除用户令牌来撤销访问。 如果他们试图重新login,令牌消失,他们将无法访问。 我也可以根据时间从数据库中删除令牌。 我正在使用nodejs并已经看到这个: 在Node.js中安全随机令牌 require('crypto').randomBytes(48, function(ex, buf) { var token = buf.toString('hex'); }); 这真的很安全,因为有人不能猜测我生成的令牌吗? 选项2: 使用像jwt的东西。 在身份validation用用户ID生成一个jwt。 当用户通过一个请求的jwt时,我确信jwt是有效的,如果是这样的话,抓取用户ID和好去。 这看起来更安全,因为jwt可以防止篡改。 问题是撤销对API的访问。 我可以存储所有jwts(直到它们到期)在数据库中,请求validation的jwt,并确保它在我的分贝。 如果我想撤销,我可以从数据库中删除它。 Con在这里是我现在有validation的jwt和查找确保其在我的分贝的开销。 有使用jwt撤销访问的好方法吗?