npm 包 passport-github-scopes 使用教程

阅读时长 6 分钟读完

在前端开发中,认证和授权是很常见的需求。而 Github 是一个很受欢迎的第三方账号,很多应用都需要通过 Github 登录。passport-github-scopes 就是一款基于 Passport.js 实现的 Github 认证包,它可以让你通过 Github 进行认证和授权,并且支持自定义授权范围。本文将详细介绍使用 passport-github-scopes 的方法和注意事项。

安装

使用 npm 安装 passport-github-scopes:

基本用法

使用 passport-github-scopes 的基本步骤如下:

  1. 引入所需模块
  1. 配置认证策略
-- -------------------- ---- -------
---------------- ----------------------
    --------- -----------------
    ------------- ---------------------
    ------------ ---------------------------------------------
    ------ -------- -------
--
--------------------- ------------- -------- ----- -
    ------------------- --------- ---------- -- -------- ----- ----- -
        ------ --------- ------
    ---
----
  1. 使用认证策略
-- -------------------- ---- -------
-----------------------
    ------------------------------- - ------ -------------- ----

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

这样,用户就可以通过访问 /auth/github 来进行 Github 认证,并且可以访问 user 和 repo。在通过认证之后,用户的权限可以保存在 session 中,供后续使用。

自定义授权范围

除了默认的授权范围外,passport-github-scopes 还支持自定义授权范围。可以通过 scope 参数来设定授权范围。例如:

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

注意事项

  • passport-github-scopes 的依赖包 passport 和 passport-github2 需要事先引入,可以使用 npm 安装。
  • 在使用 Github 登录时,需要事先在 Github 上注册 OAuth 应用,并获得 clientID 和 clientSecret。在实际开发中,这些信息通常会保存在环境变量中。
  • 在使用自定义授权范围时,需要注意所添加的权限是否被 Github 所支持。

示例代码

下面是一个完整的示例代码:

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

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

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

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

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

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

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

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

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

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

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

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

纠错
反馈