前言
相信在做前端开发的过程中,肯定有接触过第三方登录的功能,如QQ登录、微信登录等等。passport-planningcenter-oauth2就是一款基于Passport的Node.js包,用于处理Planning Center的OAuth2验证。
安装
使用npm进行安装:
$ npm install passport-planningcenter-oauth2
使用
首先,我们需要在Planning Center中的开发者中心创建应用程序,获取客户端ID和客户端密码。
在应用程序的设置中,需要填写回调URL,这是当用户验证成功后,Planning Center通过这个URL将授权码发送回我们的服务器端。
接下来,我们来看一下passport-planningcenter-oauth2如何使用。
配置
首先,需要引入passport-planningcenter-oauth2和passport:
const passport = require('passport'); const PlanningCenterOAuth2Strategy = require('passport-planningcenter-oauth2');
然后,通过创建一个 Strategy
实例,将客户端ID、密码、回调URL和回调函数作为参数传入来配置插件。如下所示:
passport.use(new PlanningCenterOAuth2Strategy({ clientID: YOUR_CLIENT_ID, clientSecret: YOUR_CLIENT_SECRET, callbackURL: "http://localhost:3000/auth/planningcenter-oauth2/callback" }, (accessToken, refreshToken, profile, done) => { return done(null, profile); }));
其中,profile
即为我们获取到的用户信息。
集成
接下来,要将我们的passport配置至我们的应用程序中。为了保持代码简洁,这里只展示了主要内容。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ------------------------------- ---------------------------- -------------------------------------- ------------------------------------------------ ----------------------------------------------- ---------------------------------------------- - ---------------- ------------- ---------------- -------- ----
我们通过 passport.initialize()
和 passport.session()
来启用Passport的Session支持。然后,在 /auth/planningcenter-oauth2
路径下,使用 passport.authenticate()
来触发授权流程,即当用户单击了这个链接时,会跳转到Planning Center的登录页面进行授权操作。完成授权后,会将授权码发送至我们的回调URL,从而进行token的获取。在 successRedirect
中,表示授权成功后将用户重定向到哪里。
获取用户信息
获取用户的信息非常简单,只需要在 done
回调函数中,将 profile
作为参数返回给调用方即可。
例如,我们可以通过 GET
请求获取用户信息:
app.get('/profile', (req, res) => { res.status(200).json(req.user); });
完整示例
-- -------------------- ---- ------- ----- ------- - ------------------- ----- -------- - -------------------- ----- ---------------------------- - ------------------------------------------ ----- --- - ---------- ------------------------------- ---------------------------- ----------------------------- ----- -- - ---------- ------ --- ------------------------------ ----- -- - ---------- ----- --- ---------------- ------------------------------ --------- --------------- ------------- ------------------- ------------ ----------------------------------------------------------- -- ------------- ------------- -------- ----- -- - ------ ---------- --------- ---- -------------------------------------- ------------------------------------------------ ----------------------------------------------- ---------------------------------------------- - ---------------- ------------- ---------------- -------- ---- ------------------- ----- ---- -- - ------------------------------- --- ---------------- -- -- - ------------------- ----------- ---
结语
passport-planningcenter-oauth2是一个非常实用的npm包,通过它我们可以很方便的进行Planning Center的OAuth2验证。本文通过详细的流程和示例代码,希望可以帮助到有需要的开发者们。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055c0a81e8991b448d9aa3