信箱浏览器
研究预览 ——Enbox正在积极开发. API可不经通知而更改.
| Enbox 应用程序 APIS、 认证、 钱包连接和 DWeb 特性的浏览器入口 |
|---|
安装
bun add @enbox/browser
使用量
@enbox/browser 再出口高级API,浏览器安全认证表面,
钱包连接处理器,和 DWeb 帮助器 :
import { createApplication } from '@enbox/browser';
import { NotesStore } from './features/notes/store.js';
const application = createApplication({
stores: { notes: NotesStore },
wallet: { appName: 'Notes' },
connection: { monitor: { autoRefresh: {} } },
});
await application.initialize();
// Invoke directly from a user action so the wallet popup opens.
async function connect(): Promise<void> {
const snapshot = await application.connection.connect();
if (snapshot.phase !== 'connected') {
throw snapshot.error ?? new Error('Connection was not established.');
}
const notes = application.store(NotesStore);
// Subscribe to notes' resources or run its domain commands.
}
为浏览器寿命保留一个应用程序 。 它的表征来自
特性模块并拥有连接,会话范围的资源,命令,
和清理. application.connection.disconnect() 签出;
application.dispose() 永远撕下主人。 反应绑住相同的
运行时间通过 EnboxProvider application={application}。 。 。 .
对于自定义主机, 供应 connectHandler 改为 wallet,或提供a
connection: manifest => nativeConnection 拥有所有本土的工厂
配置 。 无头人 @enbox/api 建造者要求该工厂;
浏览器构建器提供浏览器默认在同一运行时间左右.
本地连接、记录和上下文原始语源仍然可用
流动. defineStore是因为 observe() 厂家拥有所有本地视图类型
一个订阅和清理机制.
钱包没有数据段的登录
打电话 authenticateViaPopup() 直接来自用户请求拥有者的动作
认证证明. 提供钱包 URL 和服务
authentication: { version: 1, audience, challenge } 请求。 结果是
{ connectedDid, authentication },或 undefined 被拒绝时;没有妇发运动代表
创建会话。 该服务核实返回的证据准确无误
等待请求,并在建立登录前消耗一次挑战.
供应 onAuthenticationRequest 以登记生成的确切请求
钱包发送前的服务; 回调必须成功解决
在批准之前。 注册失败会关闭弹出 .
服务方面的核查需要独立的 expected: { audience, challenge } 从配置及其发布的交易,连同
存储完整请求。 必须拒绝未知或已经使用的挑战.
所有者认证需要HTTPS源,包括本地开发.
签了300秒后 证据就过期了 反应信封是分开的
600秒寿命不延长这一期限。 过期证明失败
登录, 即使钱包已经批准了合并模式的赠款 .
connectViaPopup() 还接受 authentication 将登录与其
明确 DWN 许可请求 。 现有的应用程序/连接存储器
APIs继续管理数据会话. 连接证明是一个 Enbox 钱包
原始;OAuth/OIDC 令牌发行属于接收服务.
未执行认证能力发现/谈判。 使用 只与已知的钱包合并模式: 较旧的钱包可以授予 请求数据访问, 然后不返回所有者证明, 无法登录 . 同样,最后签字失败也可将先前的书面赠款留在 地点 呼叫者在重新试验前必须调和或撤销部分结果; 被拒绝的合并作业不能证明DWN倒闭.
浏览器运行时间
每个浏览器 dapp 都必须注册一个调用应用程序的服务员
activatePolyfills()。页面拥有连接商店,记录视图,以及
WebSockets;工人拥有DRL取取截取和离线外壳. 保留
默认级别/ IndexedDB 存储堆栈.
在启动连接商店前, 请等待 prepareBrowser(workerUrl, { registrationOptions: { type: 'module' } }) 或通过
从此页面已有注册 navigator.serviceWorker 当PWA
工具拥有注册。 帮手等那个工人控制页面
并激活页面多填充,并带有超时和中止信号。 申请
拥有更新激活。 工人方面 activatePolyfills() 债权客户在
启动,但让等待工人到位。 完成待处理的申请
在更新处理器请求前工作 skipWaiting() 并重新装入页面.
当前浏览器配置的软件包在页面中工作,而工人在不使用的情况下构建
Enbox 特定节点- 全球, process或者说IIFE shims。 跟着
浏览器 dapp 指南 以坚忍的维特盟誓,
启动、实时数据、托管和验证设置。 基本原理存在于
浏览器 dapp 架构。 。 。 .
项目资源
| 资源 | 说明 |
|---|---|
| 一般事务人员(其他职等) | 贡献者工作流程和存储规则 |
| 许可证 | Apache 许可证,2.0版本 |