@ autional/ 核心
Autental Core SDK——框架-不可知符号管理,API客户端,以及认证流.
里面的东西
Autional——主要客户端:登录,注册,登录,OAuth,令牌刷新,设备流程,会话管理,分级升级,门户URL,租户切换,事件系统ApiClient– HTTP 客户端带有自动令牌注入, 预请求刷新, 401 上刷新, 和 snake case/ camelCase 转换AuthClient——密码传输预处理和PoW Captcha解析的认证电话Discovery- OIDC 取取发现文件TokenManager——取用/再现代币存储,JWT解码,过期跟踪TabSync——通过广播频道进行跨台会话同步browserPlatform编号 :sessionStoragePlatform编号 :memoryPlatform——现成平台装订(localStorage/会话Storage/内存)DpopManager—— OAuth 符号端点的选入 DPoP (RFC 9449) 校验生成buildPortalUrl编号 :extractTenantSlugFromIssuer租户涕丸和控制台门户URL助手
安装
npm install @autional/core
快速启动
import { Autional, browserPlatform } from '@autional/core';
const autional = new Autional({
appId: 'my-app',
issuer: 'https://auth.example.com',
platform: browserPlatform,
});
await autional.initialize();
await autional.login({ email: '[email protected]', password: 's3cret' });
const profile = await autional.api.get('/profile/api/v1/profiles/me');
console.log(profile);
密码传输
processPasswordForTransmission 以 4 种模式为租户策略进行预处理密码 :
| 模式 | 运输 | 说明 |
|---|---|---|
plain | 原始密码 | 无处理 |
hash | SHA-256(密码+) | " + 租户 (d) 国家 |
symmetric | ECDH + AES-256-GCM | 密钥交换, 加密 |
asymmetric | RSA- OAEP | 加密公用钥匙 |
SDK从 TenantAuthConfig.passwordPolicy.mode 并自动应用在登录/登记/更改-密码上.
会话账户 自助服务
同样的呼唤 Autional 财务报告和审定财务报表 AuthClient数字 :
| 打电话 | 目的 |
|---|---|
getSessions() 编号 : revokeSession(id) 编号 : revokeOtherSessions() | 列出/撤销我的会话( E)isCurrentSession 从JWT标记 sid(中文(简体) ) |
reauthenticate(password) | 用于敏感操作(单用,5分钟)的加速符 |
deleteAccount(password) | GDPR 消除——内部进行升级并发送 X-StepUp-Token |
forgotPassword() 编号 : resetPassword() 编号 : sendVerificationEmail() 编号 : verifyEmail() | 密码重置和电子邮件校验 |
updateProfile({ username?, mfaEnabled?, metadata? }) | 部分配置更新 |
revokeTokens() | RFC 7009 取消访问/更新令牌(SSO) logout() 在重定向前自动取消, 时间框为1.5 s) |
目前支持敏感端点( 分步、 删除账户) plain 财务报告和审定财务报表 hash 只有传输模式 .
复会和复会
syncTabs 默认状态。 一个成功的更新广播 TOKEN_REFRESHED 所以其他的标签重新读取存储器——一个 stale 刷新符符会绊倒服务器的活符再用检测,并取消整个活符家族. 注销和 TOKEN_REUSE 广播 LOGOUT 签出每个标签. tokenExpirySkew (秒,默认为30, 0 禁用)在访问令牌即将到期时请求前刷新; 失败的预更新保存会话完好无损—— 只有服务器报告的再使用( 身份) 40000502 / OAuth 密码 invalid_grant 带有 reused 说明)仍然清除和广播 LOGOUT。 。 。 .
设备流程(RFC 8628)
loginWithDeviceCode({ onUserCode }) 覆盖设备受限制的环境: 它显示用户代码和校验 URI, 服务器上的民调 interval后退时 slow_down,并接受 AbortSignal。 。 。 . requestDeviceCode() 是双相变体。 验证页由认证域提供( Y)/device) (中文(简体) ).
DPoP(RFC 9449——选入)
new Autional({ dpop: true }) 将信使绑定在P-256键上(通过平台存储, DpopManager) (中文(简体) ). 证明只到 OAuth 令牌- 家族端点: 令牌 / 刷新 / 撤销 / 用户info( 客户端- 证书授权 loginWithClientCredentials 在此发行时不包含 DPop 。 需要 WebCrypto 和服务器端的 DPOP 支持 .
租户污名和门户 URL
tenantSlug 驱动租户范围门户链接 : getPortalUrl('admin' | 'user' | 'security' | 'platform' | 'authenticator') 附录 /<slug>/· ; developer 财务报告和审定财务报表 status 是全球性的. createTrialTenant() 返回弹片; buildPortalUrl 编号 : extractTenantSlugFromIssuer 用于自定义目的导出 - buildPortalUrl 只支持共享基础( e)api.编号 :auth.- 前置主机; 租户- subdomain 或 IP 基准返回 null。 。 。 .
项目设置
关于框架整合,请为您的框架取个例子: examples/react-autional.ts, (中文(简体) ), examples/vue-autional.ts,或 examples/next-autional.ts复制到 src/autional.ts编辑 appId 财务报告和审定财务报表 issuer。 。 。 .
见 根 SDK 读取器 用于完整文档.