前言
在现今大数据时代,所谓的移动与云计算浪潮下,几乎所有的企业应用(Enterprise Apps)往往都会使用多样化分布在不同硬件、平台的基础设施资源。而前端作为这些应用最通走的界面,其脚手架工具和常用库的基础,也越来越大程度上影响着整个应用的开发效率与质量。今天,我们将介绍 @8base/api-token-auth-client 这个 npm 包的使用,它可以为前端开发者带来很大的便利。
包介绍
@8base/api-token-auth-client 是一个用于 8base 的基于令牌的身份验证的 JavaScript 客户端,它基于 8base API 构建。8base 是一个面向开发人员的 SaaS 平台,提供了许多后端的部署、 API 管理和数据整理等功能,通过它可以快速搭建一个数据管理系统。
这个 npm 包主要包含以下几个部分:
TokenStorage
类: 用于存储访问令牌(Access Token)。它支持通过AsyncStorage
存储到本地设备上,也支持自定义 Token 存储。Client
类:它是 @8base/api-token-auth-client 的主要接口,用于与 8base API 进行操作。通过loginUser
方法可以进行用户登录,并获取访问令牌。authUtils
: 用于提供一些工具函数和工具方法,例如getExpirationDate
用于获取 Token 的过期时间;fillClaims
用于填充令牌返回值的一些额外信息。
快速开始
安装
npm i @8base/api-token-auth-client
TokenStorage 类
首先,你需要初始化 TokenStorage
类,这样你就可以使用它来存储和获取访问令牌了。
import { TokenStorage } from '@8base/api-token-auth-client'; const storage = new TokenStorage({ name: 'myToken', storage: window.localStorage // 可以不指定,默认使用 AsyncStorage });
在这里,我们指定了 name
和 storage
两个参数,前者是用于存储 Token 的键名,后者是指定了存储类型以及位置,默认是 AsyncStorage
,这里我们直接使用了 localStorage
。
存储访问令牌需要使用 setToken()
方法:
storage.setToken(token).then(() => { console.log('Token 存储成功'); });
获取访问令牌需要使用 getToken()
方法:
storage.getToken().then(token => { console.log('获取 Token 成功', token); });
Client 类
接下来,你可以通过 Client
类对 8base API 进行操作了。
-- -------------------- ---- ------- ------ - ------ - ---- ------------------------------- ----- ------ - --- -------- ------------ ------------------ ------------ ------------------------ ------------- ------- --- ------------------ ------ ------------------------ --------- -------------- -- -------- -- - -------------------- -- ---------- -- - ------------------- ----- ---展开代码
这里指定了 workspaceId
和 apiEndpoint
两个参数,前者是指定工作环境的 ID,后者是指定 8base API 端点。可以通过 8base Dashboard 来获取 workspaceId
。同时,需要传递 tokenStorage
参数,这是用于存储用户访问令牌的 TokenStorage 实例。loginUser
方法用于进行登录操作,需要提供用户的 email 和 password。
authUtils
authUtils
是为某些常用操作提供了帮助的“工具箱”。例如,下面这个函数可以获取访问令牌的剩余过期时间。
import { authUtils } from '@8base/api-token-auth-client'; const expirationDate = authUtils.getExpirationDate(token); const remainingTimeInMs = expirationDate.getTime() - Date.now();
同时,我们可以通过 fillClaims
方法填充返回的 token 信息:
-- -------------------- ---- ------- ------------------ ------ ------------------------ --------- -------------- -- -------- -- - -------------------- ----- - ---------------- ---------------- --------- - - ---------------------- ----- ----- - ------------------------ --------------------------- - ---------------- ---------------- --------- --- -- ---------- -- - ------------------- ----- ---展开代码
总结
通过学习本篇文章,你应该了解如何使用 @8base/api-token-auth-client 这个 npm 包,并使用它在 8base API 上进行操作。它可以为前端开发者带来很大的便利,因为其提供了许多用于存储和管理访问令牌的方法和工具函数,还有用于管理与 8base 的交互的 Client 类。
在实际的开发过程中,我们要根据自己的需求去使用这些工具,加以利用,这样才能让我们的开发更加高效、优雅。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/141616