介绍
passport-github2 是一个用于 Node.js 的 Passport 身份验证库的策略。可以让你使用 Github 账户进行登录、注册等操作。
本教程将详细介绍使用 passport-github2 的步骤及注意事项,帮助初学者快速掌握这一技术,并给出实际应用的示例代码。
环境准备
在使用 passport-github2 前,你需要先安装 Node.js 和一个 Github 应用程序。创建 Github 应用程序时,需要提供一个回调 URL,该 URL 将在授权时被访问。例如:http://localhost:3000/auth/github/callback。
安装
在项目中安装 passport-github2:
npm install passport-github2
使用
1. 导入需要的包和实例化 passport
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------- - --------------------------- ----- -------- - -------------------- ----- -------------- - ------------------------------------- ----- --- - ---------- ----------------- ------- --------- ---- ---- ------------------------------- ----------------------------
2. 在 Github 上创建 OAuth 应用
在 Github 开发者设置页面 创建一个 OAuth 应用,你需要提供以下信息。
- 应用名称
- 应用主页 URL
- 应用描述
- 回调 URL
3. 使用策略
-- -------------------- ---- ------- ---------------- ---------------- --------- ----------------- ------------- --------------------- ------------ -------------------------------------------- -- --------------------- ------------- -------- ----- - ------------------- --------- ---------- -- -------- ----- ----- - ------ --------- ------ --- - ---
- GITHUB_CLIENT_ID 和 GITHUB_CLIENT_SECRET 是在应用程序中创建的 OAuth 应用程序的客户端标识和密钥。
- callbackURL 是在启动授权请求时,Github 将进行回调的 URL。
4. 设置路由
在授权请求之前,使用路由设置身份验证路由和回调路由。
app.get('/auth/github', passport.authenticate('github', { scope: ['user:email'] })); app.get('/auth/github/callback', passport.authenticate('github', { failureRedirect: '/login' }), function(req, res) { // Successful authentication, redirect home. res.redirect('/'); });
- /auth/github 基本路径是 Github 上的授权 URI,请求会转到 Github 上的 OAuth 流。
- /auth/github/callback 基本路径是回调 URI,Github 将返回 access token。
5. 在路由保护中使用passport
-- -------------------- ---- ------- ------------ -------------------- ------------- ----- ----------------- --- -------- ------------------------ ---- ----- - -- ----------------------- - ------ ------- - ----------------------- -
- ensureAuthenticated 当前用于标记需要保护的路由。当用户未经身份验证时,该路由将重定向到登录页面。
实例代码
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------- - --------------------------- ----- -------- - -------------------- ----- -------------- - ------------------------------------- ----- --- - ---------- ----- ---- - ----- ----- ---------------- - ---------------------- ----- -------------------- - -------------------------- ----------------- ------- --------- ---- ---- ------------------------------- ---------------------------- ------------------------------------- ----- - ---------- ------ --- --------------------------------------- ----- - ---------- ------ --- ---------------- ---------------- --------- ----------------- ------------- --------------------- ------------ -------------------------------------------- -- --------------------- ------------- -------- ----- - ------ ---------- --------- - --- ----------------------- ------------------------------- - ------ - ------------ - ---- -------------------------------- ------------------------------- - ---------------- -------- --- ------------- ---- - ------------------ --- -------- ------------------------ ---- ----- - -- ----------------------- - ------ ------- - ----------------------- - ------------ -------------------- ------------- ---- - --------------- - ---------------------- --- ---------------- -- -- -------------------- --- --------- -- ---- ------------
结论
通过这个教程,你应该学会了使用 passport-github2 进行身份验证的步骤和方法,并能够创建一个完整的实例程序。passport-github2 在实际项目中使用非常普遍,本教程旨在帮助初学者了解这个包的使用。希望对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f16c730403f2923b035c39f