在前端开发中,许多时候我们需要通过 API 来获取数据。而为了保证 API 能被正确调用,我们需要对 API 进行权限校验。这时候,hapi-api-auth 就成为了一款非常实用并且常用的工具库。本文将对该 npm 包进行详细介绍,并介绍如何在前端中使用它进行权限校验。
什么是 hapi-api-auth?
hapi-api-auth 是一个基于hapi.js的插件,主要用于在服务端对 API 进行权限校验。其内置了多种验证方法,包含 JWT、session 等。使用它,能够简化 API 权限校验的流程并提高开发效率。
如何在前端中使用 hapi-api-auth?
虽然 hapi-api-auth 是一个服务端的 npm 包,但是它同样适用于前端的权限校验。我们可以利用 AJAX 请求并设置 header 来完成前端权限校验的过程。下面我们将介绍如何在前端通过 hapi-api-auth 对 API 进行权限校验。
首先,我们需要在前端项目中安装 hapi-api-auth:
npm install hapi-api-auth --save
安装完成之后,我们可以使用具有权限校验功能的 API 进行访问了。例如,如果我们需要访问一个需要登录才能访问的 API,可以按照以下步骤进行操作:
- 在登录成功时,获取服务器返回的 token,使用如下方式将 token 存储在客户端:
// 假设服务器返回的 token 存在 response.headers.authorization 中 document.cookie = `authorization=${response.headers.authorization}`
- 在需要访问 API 的请求中,将 authorization header 添加到请求头中:
fetch('/api/protected', { headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${getCookie('authorization')}` // 从 Cookie 中获取 token } }).then(...)
这样,我们就能够轻松地在前端进行 API 权限校验了。
示例代码
以下是一个简单的示例,演示了如何使用 hapi-api-auth 对 API 进行权限校验:
-- -------------------- ---- ------- ------ ---- ---- ------------ ------ ----- ---- ------------- ------ ------ ---- -------------- ------ ----------- ---- -------------- ------ -------- ---- ---------------- ----- ------ - ------------- ----- ----- ----- ----------- -- -- ---- ----- ----------------- ------ ------- --------- -- --- ---- - ------- ------------ -- ------- ---- -------- - ----- - ------ ---- ---- -------- ------- - - - -- ----- ------------ - ----- --------- -------- -- -- - -- -------- --- - -- -- --- -- --------------------------- ------ - ---- ------------------ -- ----- --- ------- --------- ------------- -------------- - ----------- --------- -- ------- - -- -------------------------- -------------- ------- ------ ----- ---- -------- - ----- ------ -- ------- -------- --------- -- -- - ------ ------ -------- - - -- -------------- ------- ------ ----- ------------------------- -------- - -------- --------- -- -- - ------ ----- -- - --------- ------ - - -- ----- -------------- ------------------- ------- -- --------------------
在上述示例中,我们首先配置了一个 JWT 验证的策略。在 validateUser 函数中,我们可以进行用户权限校验,以确保用户具有访问特定 API 的权限。配置 JWT 插件后,我们还使用 server.auth.default('jwt')
将其设置为默认的验证策略。
接下来,我们配置了两个路由。第一个路由不需要进行 JWT 认证,而第二个路由需要进行 JWT 认证。对于需要认证的路由,可以在 options 中设置 auth: 'jwt'
进行认证。
以上就是 hapi-api-auth 的基本使用方法,我们可以根据需求进行权限校验方式的配置。祝愉快地开发!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005539c81e8991b448d0d7f