组件自行登录与GitHub验证
平台边界
组件使用直接fetch/WebSocket或现有通用network.request/open接口自行实现服务登录、请求、刷新和退出。现有网络额度、取消、实例隔离和最终投递检查保持,联网不新增授权。需要打开系统浏览器时沿用external.open的一般授权;服务本人登录/同意仍由用户完成。需要Client Secret的服务由作者自己的后端处理,不将共享秘密嵌入包或要求宿主代管登录。
普通秘密绑定用于用户显式配置的通用请求。启动时仅允许directory/launchTarget/secret资源绑定,未支持的绑定经Services既有失效及清理事务移除,凭据文件与恢复引用同时处理,不读取或转交给组件。
本地验证组件
examples/github-tasks只用于仓库本地开发验证,不随应用打包。组件使用配置的公共Client ID,通过通用HTTP请求实现GitHub Device Flow,自己展示用户码并由用户打开服务授权页。
设备码、访问和刷新令牌只保存在当前页面内存,不写KV、存档、缓存、浏览存储或日志;离开清除,重载重新登录。取消/失效丢弃迟到结果;取消不能撤销用户已完成的远端授权。本地退出仅释放本页凭据,远端撤销由用户在GitHub完成。
设备流程按服务interval单槽轮询,最长十五分钟;slow_down增加至少五秒并遵守更长服务间隔。任务和到期刷新只由手动操作触发,无后台任务重试或无限页累计。401使本页连接失效,普通网络失败保留已确认身份,限流提示手动稍后重试。链接只允许核对后的GitHub地址,通过external.open打开。
服务资料
登录流程和令牌刷新遵循GitHub官方Device Flow与刷新令牌。