简介
objection-hashid 是一个能够帮助你对 objection.js 模型进行 id 哈希加密的 npm 包。该包采用 hashids.js 库进行实现。
它可以让你更加方便地对敏感数据进行处理,避免 id 泄露而带来的安全风险。
安装方法
你可以使用 npm 直接进行安装:
npm install objection-hashid --save
使用方法
- 导入 objection-hashid:
const objectionHashId = require('objection-hashid');
- 在你的 objection.js 模型中调用
objection-hashid
:
const { Model } = require('objection'); const objectionHashId = require('objection-hashid'); class User extends objectionHashId(Model) { // User model }
- 重新生成迁移文件,并且使得
id
数据类型为字符串类型:
-- -------------------- ---- ------- ---------- - -------------- - ------ -------------------------------- --------------- - ----------------------------- ----------------------------------- ------------------------------------ --------------------------------------- --- -- ------------ - -------------- - ------ --------------------------------------- --展开代码
- 在你的 obj 就进行 id 哈希加密:
const user = await User.query().findById(1); const hashedId = user.$hashid(); console.log(`Hashed id: ${hashedId}`);
高级用法
自定义哈希键
默认情况下,objection-hashid
会自动为你创建 hashedId
字段,你也可以在你的 obj 模型中自定义哈希键:
const { Model } = require('objection'); const objectionHashId = require('objection-hashid'); class User extends objectionHashId(Model) { static get hashedIdColumn() { return 'myHashedId'; } }
自定义哈希长度
你也可以自定义哈希长度:
const { Model } = require('objection'); const objectionHashId = require('objection-hashid'); class User extends objectionHashId(Model) { static get hashidLength() { return 12; } }
自定义 salt 值
你可以通过设置环境变量 HASHID_SALT
来修改 hashid
的 salt 值,或者在你的 obj 模型中自定义:
const { Model } = require('objection'); const objectionHashId = require('objection-hashid'); class User extends objectionHashId(Model) { static hashidSalt() { return 'mySaltValue'; } }
总结
objection-hashid 是一个非常有用的 npm 包,能够帮助我们更好地保护敏感数据,在开发过程中更加方便地使用 objection.js 框架。
通过本文对于 objection-hashid 的详细教程,我们希望能够帮助前端工程师更好地使用该技术并且了解其深层次的使用方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/objection-hashid