jiesuo-link / appleid-unlock
Apple ID unlock and account sharing connector for V2Board, Xboard and SSPanel-UIM, with Laravel and Slim integration for Jiesuo.link V2 APIs.
Package info
github.com/AppleID-Unlock/appleid-panel-connector
pkg:composer/jiesuo-link/appleid-unlock
Requires
- php: ^7.3 || ^8.0
- guzzlehttp/guzzle: ^6.5.8 || ^7.0
- guzzlehttp/psr7: ^1.9 || ^2.0
Requires (Dev)
- phpunit/phpunit: ^9.5
Suggests
- laravel/framework: Required by the V2Board and Xboard bridge.
- slim/slim: Required by the SSPanel-UIM bridge.
README
AppleID 托管,自动解锁 https://jiesuo.link
将 Jiesuo.link Apple ID 分享 API 接入 V2Board、Xboard 或 SSPanel-UIM,无需修改面板 Controller。支持独立账号页面,以及在原生教程/文档中注入 Apple ID 变量。
- Packagist:https://packagist.org/packages/jiesuo-link/appleid-unlock
- GitHub:https://github.com/AppleID-Unlock/appleid-panel-connector
安装
推荐在面板项目根目录使用一键向导:
cd /path/to/your/panel
curl -fsSL https://raw.githubusercontent.com/AppleID-Unlock/appleid-panel-connector/main/install.sh \
-o /tmp/jiesuo-appleid-install.sh
bash /tmp/jiesuo-appleid-install.sh --panel xboard
--panel 支持 v2board、xboard 和 sspanel。向导会隐藏读取完整
APPLE_SHARE_API_URL;也可以使用 --api-url 传入,但 URL 可能留在 Shell
历史中。执行任何安装或配置写入前,向导会同时校验 Composer 包名和面板核心文件;
仅支持 wyx2685/v2board、cedar2025/Xboard 与 anankke/sspanel-uim,
允许用户修改过的面板源码,但需保留原 Composer 包名和核心目录结构。项目无法识别或
--panel 类型不一致时会直接退出,不会修改当前项目。
手动安装时,在面板项目根目录执行:
composer require jiesuo-link/appleid-unlock:^0.1
配置 V2 API
配置后台生成的完整 API URL,Package 会自动识别以下接口:
/api/v2/share/appleid/{token} 单账号
/api/v2/share/group/{token} 账号组返回的账号
/api/v2/share/page/{token} 多账号分享页
V2Board / Xboard 写入 .env:
APPLE_SHARE_ENABLED=true APPLE_SHARE_API_URL=https://jiesuo.link/api/v2/share/page/replace-with-token APPLE_SHARE_TITLE="Apple ID 获取页面"
API URL 包含分享 token,不要提交到 Git,也不要放进前端代码。API 设置了 IP 白名单 时,需要放行面板服务器的出口 IP。
V2Board / Xboard 接入
V2Board 与 Xboard 支持 Laravel Package Discovery,安装后无需注册
ServiceProvider。Package 已兼容经典 V2Board、wyx2685/v2board 和
cedar2025/Xboard 的用户鉴权方式,自动提供:
GET /api/v1/user/apple-share
该接口使用面板原有的 api,user 鉴权。可选限制允许访问独立页面的套餐:
# 留空表示所有有效套餐 APPLE_SHARE_V2BOARD_PLAN_IDS=1,2,3 APPLE_SHARE_V2BOARD_ALLOW_LIFETIME=true
V2Board / Xboard 的登录凭据位于 Authorization 请求头,前端按钮应通过主题现有的认证请求
方法获取 HTML,再写入新窗口:
async function openAppleShare() { const popup = window.open('about:blank', '_blank') if (!popup) return const response = await authenticatedRequest.get( '/api/v1/user/apple-share', { responseType: 'text' } ) popup.document.open() popup.document.write(response.data) popup.document.close() }
V2Board / Xboard 教程变量
教程正文可以直接使用:
{{appleId}}
{{appleIdPassword}}
{{appleIdUpdated}}
{{appleIdInterval}}
Package 会自动处理 /api/v1/user/knowledge/fetch 的教程响应,不需要修改
KnowledgeController。使用面板原生访问区块限制非订阅用户:
<!--access start--> <p>账号:{{appleId}}</p> <p>密码:{{appleIdPassword}}</p> <!--access end-->
关闭教程变量注入:
APPLE_SHARE_V2BOARD_KNOWLEDGE_INJECTION=false
SSPanel-UIM 接入
安装 Package 后,在 app/routes.php 返回的路由闭包中增加:
\JiesuoLink\AppleIdPanelConnector\Bridge\SSPanel\SSPanelBridge::register( $app, new \App\Middleware\User() );
在未纳入 Git 的 config/.config.php 中配置:
$_ENV['APPLE_SHARE_API_URL'] = 'https://jiesuo.link/api/v2/share/page/replace-with-token'; // 可选:限制允许访问独立页面的用户等级;留空表示任意有效等级 $_ENV['APPLE_SHARE_SSPANEL_CLASSES'] = '1,2,3';
然后在 Smarty 主题菜单中添加:
<a href="/user/apple-share">获取 Apple ID</a>
Package 注册的页面地址为:
GET /user/apple-share
SSPanel-UIM 文档变量
SSPanelBridge::register() 会自动为 /user/docs/{id}/view 注入同样的四个变量。
SSPanel-UIM 不支持 V2Board 的 <!--access start--> 标记;需要限制文档访问时,请在
管理后台启用 display_docs_only_for_paid_user。
旧版 SSPanel-UIM 使用其他文档路径时可以配置:
APPLE_SHARE_SSPANEL_KNOWLEDGE_PATHS=/user/docs/*/view,/user/tutorial,/user/help
关闭文档变量注入:
APPLE_SHARE_SSPANEL_KNOWLEDGE_INJECTION=false
说明
page接口返回多个账号时,独立页面显示全部账号,教程变量使用第一个账号。- 独立页面会检查面板用户资格;教程变量本身不额外检查套餐权限。
- Package 由面板服务器请求 V2 API,分享 URL 和 token 不会返回给前端。