npm 包 passport-facebook-signedrequest 使用教程

阅读时长 4 分钟读完

在开发 Web 应用时,我们经常需要使用第三方登陆,其中 Facebook 登陆是不可或缺的一种方式。passport-facebook-signedrequest 是一个用于通过 signed_request 验证用户身份的 PassportJS 策略。

简介

passport-facebook-signedrequest 可以方便地验证 Facebook 登录用户的身份信息,使用时需要注意以下三点:

  • 需要使用 Facebook App 的 App ID 和 App Secret,可在 Facebook Developers 界面获取。
  • Facebook App 需要设置 “Valid OAuth Redirect URIs”。
  • 进行验证的请求需要包含 Facebook 的 signed_request 参数。

安装

首先需要安装 passport 和 passport-facebook-signedrequest:

配置

在 PassportJS 中,需要对 passport-facebook-signedrequest 进行配置。具体见下例:

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

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

在本例中,使用 FacebookSignedRequestStrategy 构造一个 PassportJS 的策略,并设置了其可以获取 Facebook App 的 App ID 和 App Secret、验证成功时的回调函数。

使用

对于一个需要验证登陆状态的 Express Rout,可以使用如下代码:

其中,'facebook-signedrequest' 为之前在配置时使用该策略时设置的名称。

在 Facebook 登陆回调 URL 中,我们需要对请求中的 signed_request 参数进行解码和验证。这可以通过如下方式:

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

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

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

在上述代码中,我们获取了验证成功时的用户信息,并使用这些信息返回了一个 Access Token。

总结

本文详细介绍了如何使用 npm 包 passport-facebook-signedrequest 进行 Facebook 登陆身份验证。通过对该策略的配置和使用方法的介绍,使得读者在开发时可以更加顺利地完成 Facebook 登陆验证。

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

纠错
反馈