Communitygithub.com

poofdotnew/openapps-skill

將 Web 或 React Native 前端連接至 OpenApps:使用 @bounded-sh/client SDK(讀取、寫入、訂閱、查詢)、託管靜態前端及終端使用者認證 UI(電子郵件 OTP、OAuth、瀏覽器訪客/匿名帳號與升級)。在建置 OpenApps 應用程式的客戶端或處理終端使用者登入時使用。屬於 OpenApps 技能家族的一部分;伺服器端規則、函式與角色模型位於 openapps-backend 技能中,部署/託管配置則在 openapps-deploy 中。

openapps-skill 是什麼?

此技能為 OpenApps 生態系統的客戶端部分,提供完整的 Web 與 React Native 前端支援。它包含 @bounded-sh/client SDK,讓開發者能夠執行讀取、寫入、訂閱與查詢操作,並提供終端使用者認證功能,包括電子郵件 OTP、OAuth 以及訪客/匿名帳號管理。此技能也負責提供託管靜態前端的相關設定,且建議與 openapps-backend(定義伺服器端規則與函式)及 openapps-deploy(處理部署與網域)配對使用。透過詳細的參考路由器與直覺的經驗法則,開發者可以快速找到所需文件,避免常見陷阱,例如直接輪詢(應使用即時訂閱)或在客戶端程式碼中暴露 API 金鑰。此技能支援多種認證方式,包含內嵌錢包與自帶錢包登入,並涵蓋 React Native 行動端開發的特定考量。

相容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/poofdotnew/openapps-skill/tree/HEAD/openapps-frontend

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

OpenApps 前端

OpenApps 應用程式的客戶端:您的 Web 或行動應用程式呼叫的 SDK、終端使用者如何驗證身分,以及託管前端如何提供服務。政策仍然管控客戶端的每一次寫入,因此當客戶端動作需要規則或不變性時,請與 openapps-backend 技能配對;託管與網域部分則需配合 openapps-deploy。如需在家族中進行路由,請參閱根目錄的 openapps 技能。

參考路由器

僅讀取與目前任務或術語相符的行。

任務或術語參考文件
SDK 讀取、寫入、訂閱、分頁、queryAggregate、count、篩選、排序、游標、setMany、set(path, null)SDK 參考
建置 Web 前端Web 應用程式指南
本地開發伺服器(npm run dev、Vite、localhost)、登入彈窗失敗、redirect_uri origin is not a registered origin、本地開發時的 CORS在本機開發
重新整理計時器、setInterval、輪詢、「保持更新」、倒數計時、過時 UISDK 參考
為 React Native / 行動裝置建置React Native 指南
應用程式使用者電子郵件 OTP、OAuth、openBoundedWidget、統一登入小工具、預設 Turnkey 認證應用程式認證
自帶錢包登入;walletLogin、authMethod:'phantom'、supportsWalletSignIn、不支援的錢包 / Wallet Standard錢包登入
錢包登入在重新整理後遺失、重新載入後 getCurrentUser() 為 null、bounded_last_auth_method、會話還原方法錢包登入 - 「錢包會話在重新整理後依然存在」
訪客、匿名使用者、邀請連結、帳號升級匿名帳號
連結使用者的 X(Twitter)帳號、connect('x')、completeConnection、getConnections、已驗證的 X 使用者名稱、__connections__已連結帳號
託管前端與應用程式 URL前端託管
CLI 開發者登入或 openapps login開發者帳號
內嵌錢包、auth.wallets、電子郵件/社群登入後的 @user.address內嵌錢包
onramp()、透過信用卡購買 SOL/USDC、Coinbase Onramp、錢包充值入金

經驗法則

  • 每次客戶端寫入都受政策管控;寫入時收到 403 表示規則拒絕,而非客戶端錯誤。相關規則請參閱 openapps-backend 技能。
  • 被拒絕的讀取會回傳空的 200 回應,絕不會回傳 403。
  • 預設即時更新;絕不輪詢。 每個集合都是基於推送的,因此使用 setInterval 重新讀取路徑是一個錯誤,而非調整選項 - 請使用 useQuery(React)或 subscribe。倒數計時應使用本地時鐘狀態,而非重新讀取資料。對於少數非即時更新的表面(runQuery、functions.invoke、第三方服務),請有目的地輪詢:在隱藏的分頁中暫停、將計時器範圍限制在需要它的狀態、進行退避並設定上限。請參閱 sdk-reference.md。
  • 使用 runQueryMany 批次讀取計算值的清單;切勿對清單中的每個元素都呼叫 runQuery。請參閱 sdk-reference.md。
  • 將提供者 API 金鑰放在 OpenApps 機密(後端)中,絕對不要放在前端程式碼中。
  • 如果 npm audit 報告透過 @solana/web3.js -> jayson 引發的 uuid 安全通報 GHSA-w5hq-g745-h8pq,請使用有範圍限制的 覆寫配方。 此配方可解決該安全通報;請在已安裝的鎖定檔案上執行 npm audit --omit=dev,並分別調查任何剩餘的發現。
  • 對大多數應用程式而言,請保留預設認證設定。 請勿新增 authMode 或 auth.wallets 來「啟用錢包」:預設的 Turnkey 電子郵件/社群登入已經包含了 @user.address。僅在需要外部金鑰對會話(自帶錢包登入、伺服器 SDK 金鑰對客戶端、CLI 金鑰對資料通道)時才部署 "auth": { "wallets": true }。完整規則與退出選項:embedded-wallets.md。
  • @user.id(帳號 ID)是身分/所有權;@user.address 是錢包。 在金鑰所有權、成員資格及認證防護上,請使用 @user.id(始終存在)。僅在需要錢包/鏈上語義時才使用 @user.address - 切勿將其作為身分金鑰。
  • 在手機上進行錢包登入需要 Solana Mobile 適配器。 手機瀏覽器不會注入錢包應用程式;請保持安裝 @solana-mobile/wallet-standard-mobile(在 .npmrc 中設定 legacy-peer-deps=true),且在開啟小工具前絕不預先檢查 window.solana。請參閱 Solana Mobile。

相關技能