是否有任何 public API (s) 可用于验证激活码?

Are there any public API (s) that I could use to verify an activation code?

我正在尝试创建一个产品验证系统,但登录部分已关闭。我的问题是,如果有任何 API (s) 可以验证激活码之类的东西,并且 return 是否成功。 顺便说一句,您可能需要水平滚动才能看到所有代码

//How would I add a verification system
document.getElementById('redeemButton').addEventListener('click', () => {
  var code = document.getElementById('redeemCodeBox').value;
  var product = document.getElementById('productCode').value;

  const fetchPromise = fetch(`https://www.mywebsite.com/api/redeem?product=${product}&code=${code}`);

fetchPromise.then( response => {
    if (!response.ok) {
      throw new Error(`HTTP error: ${response.status}`);
    }
    return response.json();
  })
  
  .then( json => {
    console.log(json[0].name);
  })
  
  .catch( error => {
    console.error(`Could not get products: ${error}`);
    throw `Please Enter a Valid Activation Code`;
  });
});

我认为您不应该依赖第三方来验证激活码。

您应该使用存储在数据库中的 JWT 令牌 + 激活码的组合。

  1. 生成激活码。

  2. 生成 JWT 令牌。

    常量令牌=等待this.jwtService.sign( { usetId: 用户Id }, { expiresIn: "1d" } );

  3. 将激活码和 JWT 令牌保存到数据库。

  4. 向用户发送带有激活码的 E-mail 或短信。 + 包括 URL 用户可以在其中插入激活码。

URL 可以看起来像这样:

https://www.mywebsite.com/api/activation?token=eyJhbGciOiJIfasdfas

(对 JWT 令牌使用 查询参数 =>> ?token=JWT_token

  1. 验证来自 URL 的 JWT 令牌(来自查询参数“token”的值)并验证令牌是否未过期。

  2. 控制用户输入是否与存储在数据库中的激活码匹配。

  3. 已激活