简介
express-passport-boilerplate
是一款基于 Express
和 Passport
的身份验证的脚手架,可快速搭建一个基础的身份验证系统并进行二次开发。本文将详细介绍这个包的使用方法,旨在帮助前端开发人员快速构建高效、安全的 Web 应用程序。
安装
要安装该 npm
包,只需在终端中输入以下命令即可:
npm install express-passport-boilerplate --save
安装完成后,在项目文件夹中添加该包的依赖:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- -------- - -------------------- ----- -------------- - --------------------------- ----- --- - ---------- ------------------------ ------- ------------- ---- ------------------------------- ---------------------------- ----- -------------------------- - ------------------------------------------ ------------------------------------ -- -----------------
这将为您提供一个易于扩展的身份验证系统,同时集成了 login
、logout
、register
和 forgot password
功能。
配置
express-passport-boilerplate
默认使用以下配置:
-- -------------------- ---- ------- - -------------- - --------- --- ------------- --- ------------ ------------------------ -- ---------------- - --------- --- ------------- --- ------------ -------------------------- -------------- ------ -------- -------- -- --------------- - ------------ --- --------------- --- ------------ ------------------------- -- ------------- - -------------- -------- -------------- ----------- ------------------ ------ -- ---------- -------------- ------------ -- - --- -- - ---- ------ --------------------------------- ----------- - ----- ----------------- ----- - ----- ---------------------- ----- -------------------- -- -- -------------- ----- ------------- -------- ---------------- --------- --------------- -------------- --
如果需要修改配置,可以按照以下的格式添加到已有配置中:
-- -------------------- ---- ------- ----- ------- - - -------------- - --------- --- ------------- --- ------------ ------------------------ -- ---------------- - --------- --- ------------- --- ------------ -------------------------- -------------- ------ -------- -------- -- --------------- - ------------ --- --------------- --- ------------ ------------------------- -- ------------- - -------------- -------- -------------- ----------- ------------------ ------ -- ---------- -------------- ------------ -- - --- ------ --------------------------------- ----------- - ----- ----------------- ----- - ----- ---------------------- ----- -------------------- -- -- -------------- ----- ------------- -------- ---------------- --------- --------------- -------------- -- ----- -------------------------- - -------------------------------------------------
登录
系统自带了 google
、facebook
、twitter
和 local
四个身份验证策略,可根据项目需求自行选择。
1.### Google 登录
在
Google Cloud Console
的APIs & Services
中添加 OAuth 2.0 客户端 ID。将
userInfo
添加到Google Cloud Console
中的访问类型。修改以下
google-auth
配置项:
'google-auth': { clientID: 'yourClientId', clientSecret: 'yourClientSecret', callbackURL: 'yourCallbackUrl', },
- 创建以下路由:
app.get('/auth/google', passport.authenticate('google', { scope: ['email', 'profile'] })); app.get('/auth/google/callback', passport.authenticate('google', { successRedirect: '/', failureRedirect: '/login' }));
Facebook 登录
在
Facebook Developers
中创建一个应用程序。内部重定向 URI 要与 “回调 URL” 的值相同。
将以下字段添加到“客户端 OAuth 配置”中:
email
、public_profile
和user_friends
。修改以下
facebook-auth
配置项:
'facebook-auth': { clientID: 'yourClientId', clientSecret: 'yourClientSecret', callbackURL: 'yourCallbackUrl', },
- 创建以下路由:
app.get('/auth/facebook', passport.authenticate('facebook', { scope: ['email', 'public_profile'] })); app.get('/auth/facebook/callback', passport.authenticate('facebook', { successRedirect: '/', failureRedirect: '/login' }));
3.### Twitter 登录
在
Twitter Developer
中创建一个应用程序。将以下字段添加到“应用程序设置”中:公钥和私钥。
修改以下
twitter-auth
配置项:
'twitter-auth': { consumerKey: 'yourConsumerKey', consumerSecret: 'yourConsumerSecret', callbackURL: 'yourCallbackUrl', },
- 创建以下路由:
app.get('/auth/twitter', passport.authenticate('twitter')); app.get('/auth/twitter/callback', passport.authenticate('twitter', { successRedirect: '/', failureRedirect: '/login' }));
4.### 本地登录
- 修改以下
local-auth
配置项:
'local-auth': { usernameField: 'email', passwordField: 'password', passReqToCallback: false, },
- 创建以下路由:
-- -------------------- ---- ------- ----------------- ----- ---- -- --------------------- ------------------ ------------------------------ - ---------------- --------- ------------- ----- --- ----- ---- -- ------------------- -------------------- ----- ---- -- ------------------------ --------------------- ----- ----- ---- -- - ----- - ------ -------- - - --------- --- - ----- ------- - ----- ------------------ ------ -------- --- ------------------ ----- -- - -- ----- - ----- ---- - ------------------ --- - ----- ----- - ---------------------------------- - --- ------------------ ----- ---- -- - ------------- ----------------------- --- --------------------------- ----- ---- -- ------------------------------- ---------------------------- ----- ----- ---- -- - ----- - ----- - - --------- --- - ----- ---- - ----- ------------------- ----- --- -- ------- - ----- --- ----------- --- -------- - ----- ----- - ----- --------------------- ----- ------------ ----- ---- - ------------------------------------------------------------------------- ----- ----------- - - --- ------ ----- ---------- -------- ------ ---------- -- ----- ---------------------------------- ------------------ ----- ---- ---- -- --------- - ----- ----- - ---------------------------------- - --- -------------------------- ----- ----- ---- -- - ----- - ------ ----- - - ---------- --- - ----- ---- - ----- ------------------- ----- --- -- ------- - ----- --- ----------- --- -------- - -- --------------------- -- ------- --- ------- - ---------------------------- - ------ ----- --- - ---- - ----------------------------- --------- - - ----- ----- - ---------------------------------- - --- --------------------------- ----- ----- ---- -- - ----- - ------ ------ -------- - - --------- --- - ----- ---- - ----- ------------------- ----- --- -- ------- - ----- --- ----------- --- -------- - ----- ----- - ------------------------- -- ------- --- ------- -- ------ --- --- - ----- --- -------------- --------- - ------------------------- --- ----- ------------ ----- ---------------- -------- --- ----------------------- - ----- ----- - ---------------------------------- - ---
使用
添加完以上路由之后,您现在可以使用以下路由:
/login
/register
/forgot-password
/reset-password
/auth/google
/auth/google/callback
/auth/facebook
/auth/facebook/callback
/auth/twitter
/auth/twitter/callback
/auth/local/login
/auth/local/register
/auth/local/forgot-password
/auth/local/reset-password
您还可以在自己的路由中使用 req.user
访问当前登录用户的信息。
结语
express-passport-boilerplate
为 Web 应用程序提供了一个易于扩展的身份验证系统,能够有效保护用户隐私和安全,并且可以方便地进行二次开发和定制。我们希望这篇文章对于正在寻找身份验证系统的前端开发人员有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066b5e51ab1864dac6716b