0

我正在使用 2fa 生成访问令牌,然后将 base32 temp_secret 与实际的 sic 数字令牌一起存储在数据库中:

    const temp_secret = speakeasy.generateSecret();

    var token = speakeasy.totp({
      secret: temp_secret.base32,
      encoding: 'base32',
    });

    await this.prismaService.user.update({
      where: {
        id: user.id,
      },
      data: {
        twoFactorAuthenticationCode: token,
        secret: temp_secret.base32,
      },
    });

当我尝试使用文档中的 speakeasy.totp.verify() 验证令牌时,我得到了错误:

var verified = speakeasy.totp.verify({ secret: base32secret,
                                       encoding: 'base32',
                                       token: userToken });

这是我的项目中的内容:

    const isCodeValid = speakeasy.totp.verify({
      secret: user.secret,
      encoding: 'base32',
      token: request.body.token,
    });

我正在测试的令牌是我存储在数据库中的令牌但是我得到错误的意思是令牌不正确

4

0 回答 0