@authup/ kit (英语)
互通Authup共享的无上下文助手: URL模式匹配,ids,名称和序列化.
其余的Authup monrepo是建立在公用事业之上的,没有Authup域的知识.
安装 • 妇女 使用量 • 妇女 API 密码 • 妇女 文档
合适的话
@authup/kit 位于 Authup 依赖图的下方 : @authup/core-kit, (中文(简体) ), @authup/access,HTTP客户端,服务器包和控制台全部导入. 你和他们中的任何一个人 都会转接过来的 只有在您自己的代码需要相同的方向- 模式匹配或名称生成 Authup 用途时直接安装它, 例如在发送用户到 Authup 之前对照客户端的已注册模式检查方向URI .
安装
npm install @authup/kit
仅限无害环境管理。 节点.js >=26.0.0; 帮助者只使用 Web API(URL, (中文(简体) ), atob, (中文(简体) ), btoa),因此它们也运行在浏览器中.
使用量
根据图案匹配重定向 URI
import { isSafeRedirectURLScheme, isSimpleMatch, isSimpleURLMatch } from '@authup/kit';
isSimpleURLMatch('https://app.example.com/callback', 'https://*.example.com/**'); // true
isSimpleURLMatch('https://evil.test?.example.com/cb', 'https://*.example.com/**'); // false
isSimpleMatch('users/42', ['users/*', 'roles/*']); // true
isSafeRedirectURLScheme('myapp://cb'); // true
isSafeRedirectURLScheme('javascript:alert(1)'); // false
*匹配不交叉的字符运行( 包含空运行)/· ;**匹配其余值。 一旦数值被耗尽,通配符前面的分隔符是可选的,所以https://example.com匹配https://example.com/**。 。 。 .isSimpleMatch以敏感的方式比较案件,并知道一个界限,/启用isSimpleURLMatch对于一个 URL 上的任何信任决定: 它首先能够将值和模式( 主机大小写、 默认端口、 用户信息、 点段) 都进行分类, 因此主机中的通配符无法逃入一个查询或片段 .- 不分析为 URL 从未匹配的值 。 风俗习惯(
myapp://cb)作逐字记录. isSafeRedirectURLScheme拒绝javascript:, (中文(简体) ),data:, (中文(简体) ),vbscript:, (中文(简体) ),blob:, (中文(简体) ),filesystem:, (中文(简体) ),file:, (中文(简体) ),about:和任何不解析的东西.
生成名称、秘密和标识
import { createNanoID, generateName, generateSecret, isUUID } from '@authup/kit';
generateName(); // e.g. 'brave-otter-1a2b3c'
generateName('seed'); // the same name for the same seed
generateSecret(); // 32 characters, never seeded
createNanoID(); // 21 characters of [0-9a-z]
createNanoID(10);
isUUID('7c9e6679-7425-40de-944b-e07fc1f099d6'); // true
generateName总是返回弹片( e)[a-z0-9-],最多128个字符). 通过水分稳定种子,如Vue'suseId()在服务器和客户端渲染上获得同名名称.generateSecret故意不取出种子:一个秘密不得取自可预见值. 只生成客户端.
序列化存储值
import { deserialize, serialize } from '@authup/kit';
serialize('admin'); // '"admin"'
serialize(false); // 'false'
deserialize<boolean>('false'); // false
deserialize<string>('admin'); // 'admin'
serialize JSON 引用字符串,写布尔,数字, null 财务报告和审定财务报表 undefined 赤出一身来 RegExp 或者说 bigint 输入其字符串形式. deserialize 实值 destr,所以它既读取了引文,又读取了赤裸裸的遗产串.
在子路径下构建 URL
import { buildURL, getURLBasePath } from '@authup/kit';
buildURL('https://acme.tld/api', 'authorize').href; // 'https://acme.tld/api/authorize'
getURLBasePath('https://acme.tld/auth/'); // '/auth'
getURLBasePath('https://acme.tld'); // ''
new URL('authorize', 'https://acme.tld/api') 滴数 /api· ; buildURL 留着吧 不在或无效的基数抛出, 如 new URL。 。 。 .
API 密码
| 导出 | 仁爱 | 目的 |
|---|---|---|
isSimpleMatch, (中文(简体) ), isSimpleURLMatch, (中文(简体) ), patternHasGlobstarInAuthority | 函数 | 值和 URL 的 Glob 匹配; 检测 a ** 在图案的权威中( 在写入时拒绝它) |
isSafeRedirectURLScheme | 函数 | 拒绝脚本能力和本地重定向方案 |
generateName, (中文(简体) ), generateSecret, (中文(简体) ), createNanoID, (中文(简体) ), slugify | 函数 | 可读姓名、客户秘密、随机身份、流言 |
isUUID, (中文(简体) ), isBCryptHash | 函数 | 形状检查 |
serialize, (中文(简体) ), deserialize | 函数 | 保留类型字符串存储 |
buildURL, (中文(简体) ), getURLBasePath, (中文(简体) ), makeURLPublicAccessible | 函数 | URL 帮助者 (makeURLPublicAccessible 重写 0.0.0.0 改为 127.0.0.1(中文(简体) ) |
base64URLEncode, (中文(简体) ), base64URLDecode, (中文(简体) ), base64ToArrayBuffer, (中文(简体) ), arrayBufferToBase64 | 函数 | Base64和Base64url转换 |
template | 函数 | 替换 {{key}} 数据对象的占位符; 未知的密钥保持未动 |
toArray, (中文(简体) ), toStringArray, (中文(简体) ), toArrayElement | 函数 | 规范一个值或数组 |
isObject, (中文(简体) ), isScalar, (中文(简体) ), hasOwnProperty, (中文(简体) ), isPropertySet, (中文(简体) ), extendObject, (中文(简体) ), flattenObject, (中文(简体) ), pickRecord, (中文(简体) ), omitRecord, (中文(简体) ), omitObjectProperties, (中文(简体) ), removeObjectProperty | 函数 | 对象助手 |
wait | 函数 | 基于承诺的延迟 |
DecisionStrategy | 语句 | affirmative, (中文(简体) ), unanimous, (中文(简体) ), consensus |
ValidatorGroup | 语句 | create, (中文(简体) ), update, (中文(简体) ), provisioning |
EnvironmentName | 语句 | production, (中文(简体) ), test, (中文(简体) ), development |
ObjectLiteral, (中文(简体) ), Result, (中文(简体) ), ObjectRequired, (中文(简体) ), ObjectOptional | 类型 | 共享类型助手; Result<T> 实值 { success: true, data } | { success: false, error } |
许可证
由 所制
现按 Apache 2.0 许可证。 。 。 .