背景
在前端开发中,经常需要调用 GitHub API 来获取用户的仓库等信息。为了保证数据的安全性,需要进行身份验证,而 GitHub 正式支持的身份验证方式类似于 OAuth 2.0 的流程。然而,由于 OAuth 2.0 比较复杂,而且常常需要访问的信息比较少,于是 GitHub 推出了更加轻量级的身份验证方式:GitHub Actions auth。
@octokit/auth-action 包介绍
@octokit/auth-action 是 GitHub 官方提供的一个 npm 包,用于在 Node.js 环境下进行 GitHub Actions auth 身份验证,支持 Kubernetes 等多种部署环境。使用该包,我们可以轻松地使用 GitHub API 获取需要的信息,而无需手动进行 OAuth 2.0 的流程认证。
安装
在使用 @octokit/auth-action 前,我们需要先安装这个包,可以通过以下命令进行安装:
npm install @octokit/auth-action
使用
初始化客户端
使用该包时,我们需要访问 GitHub 账户,因此需要提供 GitHub 账户的认证信息,具体步骤如下:
- 在 GitHub 账户下创建一个 personal access token。
如何创建 personal access token,可以参考这篇文章:Creating a personal access token - GitHub Docs。
- 设置 GitHub 账户的 secret。
在 GitHub 项目的 Settings -> Secrets 页面下添加一个 secret,具体名称可以自己随意指定,如 MY_GITHUB_SECRET
,并将上一步创建的 personal access token 值作为 secret 的值。
- 使用 @octokit/auth-action 初始化一个 GitHub 客户端。
初始化代码如下:
const { createActionAuth } = require('@octokit/auth-action'); const auth = createActionAuth(); const token = await auth(); const { Octokit } = require('@octokit/rest'); const octokit = new Octokit({ auth: token, });
使用客户端
在初始化之后,我们可以使用 octokit
对象来访问 GitHub API 了,比如可以获取一个用户的仓库列表:
const { data: repos } = await octokit.repos.listForAuthenticatedUser(); console.log(repos);
示例代码
以下是一个完整的示例代码,用于获取当前用户的所有仓库:
-- -------------------- ---- ------- ----- - ---------------- - - -------------------------------- ----- ---- - ------------------- ----- ----- - ----- ------- ----- - ------- - - ------------------------- ----- ------- - --- --------- ----- ------ --- ----- -------- ---------- - ----- - ----- ----- - - ----- ----------------------------------------- ------ ------ - --------------------- -- - ------------------- ---
意义与总结
@octokit/auth-action 封装了 GitHub 官方提供的身份认证方式,使用该包可以方便地在 Node.js 环境下进行身份验证,并访问 GitHub API。该包具有简单易用、轻量级、提供了 GitHub 官方推荐的认证方式等优点,因此被广泛应用于前端开发中。希望该教程对您有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f31e4353b0ab45f74a8bd25