npm 包 @accounts/two-factor 使用教程

阅读时长 8 分钟读完

随着互联网的发展,安全问题逐渐变得突出起来,尤其是在网上进行某些重要操作时,如转账、支付等等。而二次验证技术(Two-factor authentication)能够提供额外的安全保障,让我们的账户更加安全。在前端实现二次验证时,@accounts/two-factor 是一个值得推荐的 npm 包。

一、@accounts/two-factor 简介

@accounts/two-factor 是 Meteor 开源社区中一个提供二次验证功能的 npm 包,它基于 speakeasyqrcode,支持 Time-based One-Time Password(TOTP)和 HOTP(HMAC-based One-Time Password)两种验证方式。此外,@accounts/two-factor 还支持将二次验证信息存储在数据库中,而不是在 Session 中,提高了安全性。

二、@accounts/two-factor 使用步骤

1、安装 npm 包

在您的项目中运行以下命令来安装 @accounts/two-factor:

2、创建 AccountsTwoFactor 实例

在您的项目文件中导入 @accounts/two-factor,创建一个 AccountsTwoFactor 实例:

-- -------------------- ---- -------
------ - ----------------- - ---- -----------------------

----- ----------------- - --- -------------------
  -- ----- --- ------
  ---------- -----------------------------------
  -- -----------------
  -- ------- ------------------ - ----
  -------- -
    ------- -
      ---------- -----
      ----- ------- -------- --------
      -------------- -- -- -----------
      ------- -------- ------ -- -
        -- ------ -------
        -- ------- --- ------------- -- ----- --- ------------- ------ -----
        ------ ------
      --
    --
  --
---

这里需要注意几个参数:

  • otpSecret:是您的 OTP SECRET,每个账户有一个独特的 OTP SECRET,您可以使用 speakeasy.generateSecret() 来生成,也可以手动指定。

  • methods:自定义的验证方法以自己的键。可以定义多个自定义验证方法。每个验证方法都应该有以下属性:

    • inputable:控制二次验证的输入框是在弹出框中还是作为一个输入框的一部分。
    • name:描述自定义验证。
    • createMessage:创建二次验证消息的函数。
    • verify:验证二次验证 token。

3、启用数据库

使用 Accounts 时,需要首先启用数据库:

4、启用 accounts-totp 登录验证

使用 accounts-totp 必须在服务器端安装。

在登录流程中调用 AccountsTwoFactor.createAuthToken 来生成一个 otpToken,并将其存储在用户账户的 services 对象中。

您还可以选择在 LDAP、CAS、OAuth 或其他其他身份验证提供程序之前进行二次身份验证。在这种情况下,无需调用 AccountsTwoFactor.createAuthToken。在身份验证成功后,使用 accountsTwoFactor.verifyToken 而不是 Accounts.verifyPassword 来验证密码和 OTP。

三、示例代码

-- -------------------- ---- -------
------ - ----------------- - ---- -----------------------
------ - ----- - ---- ---------------
------ - -------- - ---- -----------------------

----- ------ - --------
----- -- - --- -----------------------------------------------------------------------------

-------------- - --- ------------------------- - -------- -- ---

----- ----------------- - --- -------------------
  -- ----- --- ------
  ---------- -----------------------------------
  -- -----------------
  -- ------- ------------------ - ----
  -------- -
    ------- -
      ---------- -----
      ----- ------- -------- --------
      -------------- -- -- -----------
      ------- -------- ------ -- -
        -- ------ -------
        -- ------- --- ------------- -- ----- --- ------------- ------ -----
        ------ ------
      --
    --
  --
---

----------------
  ---
   - ------ -----
   --
  ---------------- -------- ------------------------- -
    ----- ---- - ------------------------------------------
    ----- - -------- - - ----- ----------------------------------------
    ------ -
      --------
    --
  --

  ---
   - ------ -----
   --
  ------------ -------- --------------------- --------- ------ -
    ----- ---- - --------------------------------------
    ----- ------ - ----------------------------- ----------
    -- -------------- -
      ----- --- --------------------
    -
    -- ------------------ -
      ----- --- ----------------
    -

    ----- -------- - ------------------------------------------
    -- ----------- -
      ----- --- ---------- ----- ------
    -

    ----- --------------- - -------------------------------
    ----- ------------ - ----- ------------------------------
      ----------------
      ---------
      -----
    --

    ------ -
      -------------
    --
  --
---

四、总结

@accounts/two-factor 是一个简单而灵活的 npm 包,它可以帮助我们实现二次验证功能,提升账户的安全性。通过本文的介绍,您应该对它的使用方法有了初步的了解。您可以根据自己的实际需求深入学习该 npm 包并应用到自己的项目中。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/192753