PHPackages                             zoujingli/think-plugs-account - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. zoujingli/think-plugs-account

ActiveThink-admin-plugin[Admin Panels](/categories/admin)

zoujingli/think-plugs-account
=============================

Account Plugin for ThinkAdmin

v1.0.24(2mo ago)02.4k↓57.1%3PHPPHP &gt;7.1

Since Mar 8Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/zoujingli/think-plugs-account)[ Packagist](https://packagist.org/packages/zoujingli/think-plugs-account)[ Docs](https://thinkadmin.top)[ RSS](/packages/zoujingli-think-plugs-account/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)Dependencies (3)Versions (8)Used By (3)

ThinkPlugsAccount for ThinkAdmin
================================

[](#thinkplugsaccount-for-thinkadmin)

[![Latest Stable Version](https://camo.githubusercontent.com/8d5ed5935a9613cf7c215f50496b5da1415b0cd7597ab766867605096f43039b/68747470733a2f2f706f7365722e707567782e6f72672f7a6f756a696e676c692f7468696e6b2d706c7567732d6163636f756e742f762f737461626c65)](https://packagist.org/packages/zoujingli/think-plugs-account)[![Latest Unstable Version](https://camo.githubusercontent.com/c45f82219b2bd6726be677c08e814160af329c73fb0b73960496e349524fe376/68747470733a2f2f706f7365722e707567782e6f72672f7a6f756a696e676c692f7468696e6b2d706c7567732d6163636f756e742f762f756e737461626c65)](https://packagist.org/packages/zoujingli/think-plugs-account)[![Total Downloads](https://camo.githubusercontent.com/6ccd7938a2ba80efc3cb5052a8d8a51b093a1c79ab19a6eea8f6d8bd92e0f620/68747470733a2f2f706f7365722e707567782e6f72672f7a6f756a696e676c692f7468696e6b2d706c7567732d6163636f756e742f646f776e6c6f616473)](https://packagist.org/packages/zoujingli/think-plugs-account)[![Monthly Downloads](https://camo.githubusercontent.com/6782656bea9a80130448834a1c8177882ab2f94402fddc3cafa11dd309b3abef/68747470733a2f2f706f7365722e707567782e6f72672f7a6f756a696e676c692f7468696e6b2d706c7567732d6163636f756e742f642f6d6f6e74686c79)](https://packagist.org/packages/zoujingli/think-plugs-account)[![Daily Downloads](https://camo.githubusercontent.com/fa5b9e2b4774e36bf4b8d1e7df2ac16229136b01edfb16e776049c87aee1b51e/68747470733a2f2f706f7365722e707567782e6f72672f7a6f756a696e676c692f7468696e6b2d706c7567732d6163636f756e742f642f6461696c79)](https://packagist.org/packages/zoujingli/think-plugs-account)[![PHP Version](https://camo.githubusercontent.com/6edd55d00ff169d80f252ddfcd8137da3213250a8ebd4626e06ca0f80efb0657/68747470733a2f2f7468696e6b61646d696e2e746f702f7374617469632f69636f6e2f7068702d372e312e737667)](https://thinkadmin.top)[![License](https://camo.githubusercontent.com/24affdafc6c066f3c9b3e67e270e74be5bda33efc26d5880fb8a4f5f738eeba2/68747470733a2f2f7468696e6b61646d696e2e746f702f7374617469632f69636f6e2f6c6963656e73652d7669702e737667)](https://thinkadmin.top/vip-introduce)

**ThinkPlugsAccount** 是 **ThinkAdmin** 的多端账号插件，作为一套通用基础用户数据管理解决方案，支持多客户端登录绑定功能。本插件属于[会员尊享插件](https://thinkadmin.top/vip-introduce)，未经授权不得用于商业用途。

目前，我们已提供丰富的数据接口，支持 **微信服务号**、**微信小程序**、**手机短信验证** 三种登录授权方式，以满足不同用户的登录需求。对于其他登录方式，您可以选择使用短信验证登录，确保用户账号的安全与便捷。

在账号逻辑数据方面，我们已全面支持**微信服务号**、**微信小程序**、**安卓APP程序**、**苹果IOS程序**、**手机网页端**、**电脑网页端**以及**自定义方式**。无论用户从哪个平台或设备登录，都能享受到流畅、统一的账号体验。

请注意，通过 **微信服务号** 和 **微信小程序** 等授权方式登录的用户，初始状态为临时用户。为了保障账号的正式性和安全性，我们要求用户通过手机号短信验证并绑定手机号，完成这一过程后，用户将升级为正式用户，享受更多会员权益和服务。

我们致力于为用户提供更加便捷、安全的账号管理体验，不断优化和完善多端账号中心的功能与服务。

**数据关联模型：**

`临时用户(usid)` `` `绑定手机(bind)` `` `正式用户(unid)`

### 话术解析

[](#话术解析)

- **账号调度器 - Account**：这是一个用于创建账号管理实例对象的工具，同时也负责处理部分基础数据。它使得账号管理变得更加便捷和高效。
- **账号接口类型 - Account::TYPE**：这是终端账号请求的特定通道标识。在请求过程中，通常通过传递字段 **type** 作为参数来指定该接口类型，确保请求能够准确地被识别和处理。
- **账号实例接口 - AccountInterface**：这个接口涵盖了用户账号编号和终端账号编号的数据，以及与之相关的操作，如接口授权等。它提供了丰富的功能，使得开发者能够灵活地管理和操作账号数据。
- **用户账号编号 - unid**：这是用户的唯一账号标识，与数据表 **PlugsUser** 的 **id** 字段相对应。通过绑定和解绑操作，可以方便地将用户账号与不同的终端账号进行关联，实现跨平台登录和账号同步。
- **终端账号编号 - usid**：这代表了用户的其中一种登录账号，是用户在特定终端上的身份标识。它只能与一个用户账号进行绑定，确保了账号的唯一性和安全性。在数据表 **PlugsBind** 中，该编号与 **id** 字段相对应，方便进行数据存储和查询。

**注意事项：**

- 用户账号编号 `unid` 的获取流程如下：终端账号登录后，通过调用 `$account->bind()` 方法来创建或绑定用户账号。成功绑定后，系统将返回用户账号编号 `unid` 的值，作为该用户账号的唯一标识。
- 若需取消终端账号与用户账号的关联，可调用 `$account->unbind()` 方法。一旦关联被取消，该终端账号便可重新绑定其他用户账号，实现灵活的用户账号管理。

### 加入我们

[](#加入我们)

我们的代码仓库已移至 **Github**，而 **Gitee** 则仅作为国内镜像仓库，方便广大开发者获取和使用。若想提交 **PR** 或 **ISSUE** 请在 [ThinkAdminDeveloper](https://github.com/zoujingli/ThinkAdminDeveloper) 仓库进行操作，如果在其他仓库操作或提交问题将无法处理！.

### 开放接口

[](#开放接口)

通过用户登录接口，换取 **JWT-TOKEN** 内容，之后接口需要在每次请求的头部 **header** 加上 **Api-Token** 字段并带上之后获取到的值。

**接口文档：**

**特别注意：** 调用接口时后台接口未启动 `Session` 中间键，建议使用 `Cache & usid` 或 `Cache & unid` 作为`key`值来缓存数据。

### 接口状态

[](#接口状态)

- `code`:`0` 操作失败，稍候重试
- `code`:`1` 操作成功，正常操作
- `code`:`401` 无效令牌，需要重新登录
- `code`:`402` 资料不全，需要补全资料
- `code`:`403` 认证超时，需要重新登录

### 安装插件

[](#安装插件)

```
### 安装前建议尝试更新所有组件
composer update --optimize-autoloader

### 安装稳定版本 ( 插件仅支持在 ThinkAdmin v6.1 中使用 )
composer require zoujingli/think-plugs-account --optimize-autoloader

### 安装测试版本（ 插件仅支持在 ThinkAdmin v6.1 中使用 ）
composer require zoujingli/think-plugs-account dev-master --optimize-autoloader
```

### 卸载插件

[](#卸载插件)

```
### 注意，插件卸载不会删除数据表，需要手动删除
composer remove zoujingli/think-plugs-account
```

### 调用案例

[](#调用案例)

```
// 账号管理调度器
use plugin\account\service\Account;

// @ 注册一个新用户（ 微信小程序标识字段为 openid 字段 ）
//   不传 TOKEN 的情况下并存在 openid 时会主动通过 openid 查询用户信息
//   如果传 TOKEN 的情况下且 opneid 与原 openid 不匹配会报错，用 try 捕获异常
//   注意，每次调用 Account::mk() 都会创建新的调度器，设置 set 和 get 方法的 rejwt 参数可返回接口令牌
$account = Account::mk(Account::WXAPP, TOKEN='');
$user = $account->set(['openid'=>'OPENID', 'phone'=>'13888888888']);
var_dump($user);

// 列如更新用户手机号，通过上面的操作已绑定账号，可以直接设置
$account->set(['phone'=>'1399999999']);

// 设置额外的扩展数据，数据库没有字段，不需要做为查询条件的字段
$account->set(['extra'=>['desc'=>'用户描述', 'sex'=>'男']]);

// 获取用户资料，无账号返回空数组
$user = $account->get();
var_dump($user);

// 以上插件仅仅是注册终端账号，也就是临时账号
// 下面我们通过 bind 操作，绑定或创建用户账号（ 主账号 ）
$user = $account->bind(['phone'=>'1399999999'],['uesrname'=>"会员用户"]);
var_dump($user); // $user['user'] 是主账号信息

// 解除该终端账号关联主账号
$user = $account->unBind();
var_dump($user); // 此处不会再有 $user['user'] 信息

// 判断终端账号是否为空，也就是还没有调用 set 访问或 init 失败
$user = $account->isNull();

// 获取接口 Token 信息
$user = $account->get(true);
var_dump($user); // $user['token'] 即为 JwtToken 值，接口 header 传 api-token 字段

// 判断终端账号是否已经关联主账号
$is = $account->isBind();
var_dump($is);

// 获取主账号关联的所有终端账号
$binds = $account->allBind();

// 通过终端USID取消其关联主账号
$binds = $account->delBind($usid);

// 动态注册接口通道，由插件服务类或模块 sys.php 执行注册
Account::add('diy', '自定义通道名称', '终端账号编号验证字段');

// 通道状态 - 禁用接口，将禁止该方式访问数据
Account::set('diy', 0);

// 通道状态 - 启用接口，将启用该方式访问数据
Account::set('diy', 1);

// 保存通道状态，下次访问也同样生效
Account::save();

// 获取接口认证字段以及检查接口是否有效
$field = Account::field('diy');
if($field)// 接口有效
else //接口无效

// 获取全部接口
$types = Account::types();
var_dump($types);
```

### 功能节点

[](#功能节点)

可根据下面的功能节点配置菜单及访问权限，按钮操作级别的节点未展示！

- 用户账号管理：`plugin-account/master/index`
- 终端账号管理：`plugin-account/device/index`
- 手机短信管理：`plugin-account/message/index`

### 业务功能特性

[](#业务功能特性)

**核心账号功能：**

- **多端统一账号**: 支持微信服务号、微信小程序、APP、网页等多终端统一账号体系
- **三层账号模型**: 临时用户(usid) ↔ 绑定手机(bind) ↔ 正式用户(unid) 的完整账号生命周期
- **JWT无状态认证**: 基于 JWT Token 的无状态认证机制，支持跨域和分布式部署
- **动态通道注册**: 支持运行时动态注册新的登录通道类型，灵活扩展登录方式
- **手机号绑定验证**: 通过短信验证码实现手机号绑定，确保账号安全性和唯一性
- **账号解绑管理**: 支持终端账号与主账号的灵活绑定和解绑操作
- **高并发安全**: 支持高并发场景下的账号创建和绑定操作
- **数据一致性保障**: 通过数据库事务确保账号数据的一致性

**技术特性：**

- **缓存优化**: 集成缓存机制，提升账号信息查询性能
- **异常处理完善**: 完善的异常捕获和错误处理机制
- **扩展性设计**: 抽象的账号接口设计，便于扩展新的认证方式
- **向后兼容**: 保持 API 稳定性，确保平滑升级

### 插件数据

[](#插件数据)

本插件涉及数据表有：

- 插件-账号-授权: `plugin_account_auth`
- 插件-账号-终端: `plugin_account_bind`
- 插件-账号-短信: `plugin_account_msms`
- 插件-账号-资料: `plugin_account_user`

### 版权说明

[](#版权说明)

**ThinkPlugsAccount** 为 **ThinkAdmin** 会员插件。

未获得此插件授权时仅供参考学习不可商用，了解商用授权请阅读 [《会员授权》](https://thinkadmin.top/vip-introduce)。

版权所有 Copyright © 2014-2026 by ThinkAdmin () All rights reserved。

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance86

Actively maintained with recent releases

Popularity20

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~120 days

Recently: every ~91 days

Total

7

Last Release

71d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c806d477ba01d9441023f3cc9a7c70e6491a189d0aae80bca2cc444691e31723?d=identicon)[zoujingli](/maintainers/zoujingli)

---

Top Contributors

[![zoujingli](https://avatars.githubusercontent.com/u/4349951?v=4)](https://github.com/zoujingli "zoujingli (22 commits)")[![jonesshen](https://avatars.githubusercontent.com/u/25916249?v=4)](https://github.com/jonesshen "jonesshen (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/zoujingli-think-plugs-account/health.svg)

```
[![Health](https://phpackages.com/badges/zoujingli-think-plugs-account/health.svg)](https://phpackages.com/packages/zoujingli-think-plugs-account)
```

###  Alternatives

[jeroennoten/laravel-adminlte

Easy AdminLTE integration with Laravel

4.0k4.8M43](/packages/jeroennoten-laravel-adminlte)[dmstr/yii2-adminlte-asset

AdminLTE backend theme asset bundle for Yii 2.0 Framework

1.1k1.8M67](/packages/dmstr-yii2-adminlte-asset)[dwij/laraadmin

LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like CRUD Generation, Module Manager, Media, Menus, Backups and much more

1.6k68.7k](/packages/dwij-laraadmin)[filament/spatie-laravel-media-library-plugin

Filament support for `spatie/laravel-medialibrary`.

1764.8M125](/packages/filament-spatie-laravel-media-library-plugin)[filament/infolists

Easily add beautiful read-only infolists to any Livewire component.

1220.8M36](/packages/filament-infolists)[magefan/module-admin-user-guide

Admin panel user guides.

132.5M1](/packages/magefan-module-admin-user-guide)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
