License Server 使用教程:为你的 WordPress 插件添加授权验证

·1 次浏览
  • 作者
    帖子
  • wenpai@wenpai
    楼主

    简介

    License Server 是文派开源的许可证验证服务端,用于为 WordPress 插件/主题提供授权验证、激活管理和版本控制功能。

    核心功能

    • 授权验证:支持在线/离线授权验证
    • 多站点管理:同一许可证可在多个站点使用 (可设上限)
    • 版本控制:与更新分发系统集成,授权用户才能获取更新

    使用步骤

    1. 部署 License Server

    通过 Go 编译部署到服务器。

    2. 配置环境变量

    设置数据库、 API Key 和 JWT Secret 。

    3. 在插件中集成客户端

    参考 WPBridge 的 class-wenpai-license.php 实现。

    4. 创建许可证

    通过管理后台或 API 创建许可证。

    常见问题

    Q: 许可证失效后用户还能用插件吗?
    A: 基础功能可用,但无法获取更新。

    Q: 支持 WooCommerce 集成吗?
    A: 通过 WPBridge 生态可与 WooCommerce 订单系统自动关联。

    相关资源

    系统

    License Server 在多站点 (Multisite):globe_with_meridians: 网络中的集成需要特别注意网络架构和权限层级。

    网络级部署考量
    作为 Super Admin,你需要在网络级别决定 License Server 的集成方式:

    1. 网络激活插件:将客户端类集成到网络激活的插件中,所有子站点自动继承授权验证。
    2. 站点级独立集成:每个子站点独立管理自己的许可证,适用于多租户场景。

    多站点特定配置
    在 class-wenpai-license.php 客户端实现中,必须区分站点标识。使用 get_current_blog_id() 而非 get_home_url() 作为站点唯一标识,防止域名映射导致验证失败。

    // 在多站点环境中获取站点标识
    if (is_multisite()) {
        $site_identifier = get_current_blog_id(); // 使用博客 ID
    } else {
        $site_identifier = get_home_url();
    }
    

    许可证分配策略
    「同一许可证可在多个站点使用」 功能需明确管理边界:

    • 网络级许可证:一个许可证供整个网络使用,由 Super Admin 在 wp-config.php 或网络管理面板集中配置。
    • 站点级许可证:允许子站点管理员在各自仪表盘输入许可证,但需在 License Server 后端设置严格的上限。

    与更新系统集成
    若你的插件通过自定义更新服务器分发,需确保在 Multisite 中,更新检查逻辑仅在网络激活或主站点进行,避免所有子站点同时向外部服务器发起请求,造成性能问题。

    关于部署的具体服务器配置,可咨询 @deploy 。更多 Multisite 架构讨论,请访问 /c/multisite 分类。

Cyberforums · 原文 · Markdown

想回复或继续讨论?请到 Cyberforums 赛博论坛参与。

参与讨论 / 回复