@heybox/hb-sdk API Reference - v0.9.5
    正在准备搜索索引...
    • 撤销当前用户授予本小程序的授权;必须由可信用户操作触发。

      返回 Promise<void>

      Host 确认撤销后 resolve undefined;不会返回被撤销的身份、scope 或清理结果。

      HbMiniProgramSDKError USER_GESTURE_REQUIRED 表示调用不在按钮点击、确认 等可信用户操作中;校验发生在网络 I/O 之前。

      HbMiniProgramSDKError HEYBOX_APP_LOGIN_REQUIRED 表示当前 Host 没有已登录的 小黑盒账号;该方法不会主动拉起登录流程。

      HbMiniProgramSDKError INVALID_STATE 表示缺少 canonical 小程序身份; METHOD_FORBIDDEN 表示当前 Host 缺少该能力依赖;通过底层协议传入任何 payload 时返回 INVALID_PARAMS。

      HbMiniProgramSDKError REQUEST_UNSUPPORTED / REQUEST_FAILED / INVALID_RESPONSE 表示 Host 请求能力、撤销请求或响应失败;AUTHORIZATION_CONTEXT_CHANGED 表示请求期间切换了账号或授权上下文已变化。

      HbMiniProgramSDKError RATE_LIMITED 表示上游返回 403/429,或该 endpoint 处于 Runtime 熔断窗口;error.data.retryAfterMs(可能缺失)给出建议退避时长。

      HbMiniProgramSDKError RATE_LIMITED_BY_RUNTIME 表示 Runtime 本地拒绝(每 session 配额或同 endpoint 循环检测),请求没有到达上游;error.data.origin 为 'budget' 或 'loop'。 两种情况调用方都应停止立即重试。

      HbMiniProgramSDKError RUNTIME_DESTROYED / SDK_DESTROYED 表示 Runtime 或 SDK 已终止。SDK 握手失败或超过调用超时时间时,还会返回对应握手错误码或 REQUEST_TIMEOUT。

      该方法没有参数。页面不能传入小程序 ID、黑盒用户 ID 或手势标记;Runtime 从受信 Host 启动上下文读取当前小程序和当前用户,并校验真实用户手势。

      user.revokeAuthorization 位于无需声明白名单,不要求 userInfo、network 或其他 package.json#heybox.permissions 项,也不会修改 Manifest 声明或平台批准状态。它使用 Host 的受信请求撤销当前用户授予当前小程序的用户授权。

      只有服务端确认成功且请求期间账号未变化时,Runtime 才清空缓存的隔离身份和授权 scope, 并通过 on 发布 user_info_authorization_change,payload 为 { identity: 'denied', profile: 'denied' };启用 Steam 账号能力时还包含 steam_account: 'denied'。失败或过期的撤销结果不会发布该成功事件。

      成功后必须立即停止使用旧 app_user_id 和资料,并由业务自行清理 localStorage、SDK storage 中的业务值、cookie、数据库以及开发者服务端 session;SDK 不会代为删除这些 数据。随后调用 auth.login 会重新进入授权流程;随后调用 user.getInfo 会按当前规则重新读取或建立隔离身份,不能假定 新旧 app_user_id 相同。

      import hbSDK from '@heybox/hb-sdk'

      async function revokeFromSettingsButton() {
      if (!window.confirm('确定撤销当前小程序的用户授权吗?')) return

      await hbSDK.user.revokeAuthorization()
      clearPersistedUserProfile()
      await deleteDeveloperSession()
      }

      0.7.0

      android

      ios

      ohos

      windows

      macos

      android none

      ios none

      ohos none

      windows none

      macos none