npm 包 @wwwouter/passport-pocket 使用教程

阅读时长 7 分钟读完

简介

@wwwouter/passport-pocket 是一个封装了 Pocket 官方 API 的 Node.js 模块。通过该模块,我们可以快速地将 Pocket 授权集成到我们的 web 应用程序中,并使用 Pocket API 获取用户的文章列表。

安装

使用 npm 安装该模块:

使用

初始化模块

使用 Node.js 的 require() 函数将模块引入到我们的应用程序中:

配置认证策略

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

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

在上面的代码中,我们使用了 Passport 提供的 Strategy 对象,实现了 Pocket 认证的逻辑。我们传入了 POCKET_CONSUMER_KEY 和 CALLBACK_URL 两个参数。POCKET_CONSUMER_KEY 是 Pocket 开发者中心创建应用后给出的 Consumer Key,而 CALLBACK_URL 是我们的应用程序用来接收 Pocket 认证成功后的回调请求的 URL。

注册认证路由

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

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

上述代码将 /auth/pocket 路由绑定到 Passport 的 Pocket 认证策略上,并将认证请求转发到 Pocket 官方认证页面。当用户认证成功后,回调请求将被转发到 /auth/pocket/callback 路由,我们可以在该路由的回调函数内,将认证令牌写入到用户的 cookie 中。

获取用户文章列表

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

在上面的代码中,我们使用了 Pocket 安装包的 Pocket 对象,将 POCKET_CONSUMER_KEY 和 ACCESS_TOKEN(即用户认证后获取到的令牌)传入 Pocket 对象中。使用我们的 Pocket 对象的 get 方法,以 sort=oldest,count=10 和 detailType=simple 参数调用 Pocket API。在回调函数中,我们可以通过 res.body 获取到返回的文章列表。

学习意义

通过本教程,我们可以了解到如何使用第三方模块解决开发中的某些问题。对于未经验证的认证,我们既可以使用原始的方法实现,也可以使用 Passport 等认证库;对于一些常见的 API,我们也可以使用相应的库来简化开发流程。

示例代码

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

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

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

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

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

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

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

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

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

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

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

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

纠错
反馈