介绍
passport-depositphotos 是一个可以和 Passport 搭配使用的 Node.js 模块,它能让你的 Node.js 应用支持使用 Depositphotos 的 OAuth2 鉴权服务。借助该模块,你可以方便地获取 Depositphotos 的用户授权信息,并使用其提供的 API 完成图片库的相关应用开发。
安装
首先,你需要在应用中安装 passport-depositphotos 模块。使用 npm 进行安装:
npm install passport-depositphotos
安装完成后,在你的应用中引入该模块:
const passport = require('passport'); const DepositphotosStrategy = require('passport-depositphotos').Strategy;
配置
在利用 Depositphotos API 之前,需要先去开发者中心注册一个应用,并获取到应用的 API Key 和 Secret。然后,利用该 API Key 和 Secret,创建一个 DepositphotosStrategy 实例:
-- -------------------- ---- ------- ---------------- ----------------------- --------- ----------------- ------------- --------------------- ------------ ---------------------------------------------------- ------ ------------------ --------------- ------------------------ -- ----------- -- -------- ------------- ------------- -------- --- - -- ----- --------------- - ---
clientID
和 clientSecret
是你在 Depositphotos 开发者中心获取到的应用 API Key 和 Secret。callbackURL
则是用户授权成功后,Depositphotos 服务器调用的回调地址,在该地址上可以获取到用户的授权信息。scope
则是所请求的授权范围,可以根据自己的需求进行修改。
在创建好 DepositphotosStrategy 实例后,需在应用中设置用于处理鉴权流程的四个路由:
-- -------------------- ---- ------- -- ---------- ------------------------------ ---------------------------------------- -- ------------ --------------------------------------- -------------------------------------- - ---------------- -------- --- -------- ----- ---- - -- ----- ------------- ------------------ --- -- -- ------------------ -------- ----- ---- - ------------- ------------------ --- -- ------------------------------ ------------ ------------------------------------------------- -------- ----- ---- - --------------------- - ----- -------- --- ---
其中,第一个路由实现的是开始用户授权登录流程的过程,它将用户导向 Depositphotos 的授权页面。第二个路由是授权成功后 Depositphotos 服务器调用的回调地址,应用在该回调地址上获取到用户的授权信息,并存储该信息。第三个路由用于用户登出操作,最后一个路由则是一个普通路由,如果用户已经登录,它会将用户定向到账号信息页面,否则跳转到登录页。
使用
在经过上述配置后,任何访问 /
路径的请求都会被重定向到授权页面完成授权操作,然后跳转回你应用的回调地址,这个地址会接受一系列 GET 参数,其中 code
参数是最为关键的,它包含了从 Depositphotos 获取的 Access Token。在回调地址里面的实现中,你可以通过下面的方式,使用 passport.authenticate()
函数来验证授权信息:
app.get('/auth/depositphotos/callback', passport.authenticate('depositphotos', { failureRedirect: '/login' }), function (req, res) { // 这里,req.user 中包含了该用户的授权信息 res.redirect('/'); });
如果授权验证成功了,那么在 req.user 对象中就包含了用户的所有信息。在这里,你可以通过该对象中的内容,例如当前登录用户的 ID 和用户名等信息,来完成你的业务逻辑,代码示例如下:
-- -------------------- ---- ------- ------------------ -------- ----- ---- - --- ----------- - --------------- --- ------- - ------------ --- --- - ---- --- ------ ---------------- - -------- - -------------- ------- --------------- - -- -------- ----- --------- ----- - -- ----- ------ --------------- --- ---
结束语
以上就是本文介绍的 npm 包 passport-depositphotos 的详细使用教程。借助该包,开发者可以在即有了 Depositphotos 的 OAuth2 授权服务后,方便地在应用中使用 Depositphotos 的 API。而 Passport.js 中间件的使用方式更可以让这一切变得简单快捷,因此,我们在开发应用的过程中,不妨考虑使用它来简化我们的工作流程。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055af181e8991b448d89a5