简介
现在,前后端分离的开发已经非常流行了。在绝大部分情况下,前端负责开发用户界面并与后端进行交互。前端经常需要使用 JSON Web Token(JWT)进行身份验证,这时就需要使用 objection-auth 这个 npm 包。
objection-auth
是一个 Objeciton.js 的插件。它允许开发者创建授权和角色策略,并与如 JWT 等第三方认证/授权服务进行交互。
在本篇教程中,我们将会了解 objection-auth 的基本用法,以及如何将授权策略应用到请示和响应中。
安装和使用
安装 objection-auth
在安装 objection-auth 之前,我们需要先安装 objection.js 这个 ORM。在终端中,我们将执行以下命令:
npm install objection --save
然后,我们就可以安装 objection-auth 了:
npm install objection-auth --save
用法
下面是 objection-auth 的一些基本用法。在使用它之前,我们需要先创建一个数据库模型。
-- -------------------- ---- ------- ----- - ----- - - --------------------- ----- ---- ------- ----- - ------ --- ----------- - ------ -------- - ------ --- ------------------ - ------ - ------ - --------- ------------------------- ----------- ----- ----- - ----- ----------- -------- - ----- -------------------- --- ------------------- -- --- ---------- - - -- - - ----- ---- ------- ----- - ------ --- ----------- - ------ -------- - ------ --- ------------------ - ------ - ------ - --------- ------------------------- ----------- ----- ----- - ----- ----------- -------- - ----- -------------------- --- ------------------- -- --- ---------- - - -- - -
然后,我们需要使用 objection-auth 函数来添加授权策略:
-- -------------------- ---- ------- ----- - ----- ---------- - - -------------------------- ----- ----------- - --------------------------------- ----- ---------- - ----------------------------------- ----- ---- - --- ------- -------------------------------- ----------------- - ----- ---- ----- ------ -- - ----- ------- - --- ---------------------- - ------------------------------------------- ------------------- - ----------- ------------------------ - ------ ---------------- -------------------- --------- ----- -- - ----- ---- - ---------------------------------- -- ------ - ---------- ------ - ---- - ---------- ------- - ---- ---------------------------- - -------- ----- -- ----- ----- -- - -- ----- ------ ---------- -- ------- ------ -------------------- -- ---------------------------- ------ -------------------- -------- - ----- ------ ------- ------- ---- ------ --
上述代码中,我们使用了 Passport.js 中的 JWT 策略来验证用户。如果用户的角色不在规定的列表中,则返回 401 状态码。
使用授权策略很简单。下面是一个使用授权策略的示例:
const { UserPolicy } = require('objection-auth'); router.post('/users', auth.hasRole(UserPolicy.CREATE_USERS), async (req, res) => { // 创建用户... });
在上述代码中,我们使用 auth.hasRole()
函数来检查用户是否有权限进行某个操作。
总结
学会使用 objection-auth 可以在前后端分离的环境中实现更好的授权/身份验证策略。在本篇教程中,我们简要地介绍了 objection-auth 的基本用法,并且提供了一个实际的使用示例。如果你正在开发一个 Node.js 应用程序,并且需要一个身份验证/授权机制,那么 objection-auth 绝对是一个值得考虑的选择。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f9e3d1de16d83a6708f