ThinkPlugsAccount 是 ThinkAdmin 的多端账号插件,作为一套通用基础用户数据管理解决方案,支持多客户端登录绑定功能。本插件属于会员尊享插件,未经授权不得用于商业用途。
目前,我们已提供丰富的数据接口,支持 微信服务号、微信小程序、手机短信验证 三种登录授权方式,以满足不同用户的登录需求。对于其他登录方式,您可以选择使用短信验证登录,确保用户账号的安全与便捷。
在账号逻辑数据方面,我们已全面支持微信服务号、微信小程序、安卓APP程序、苹果IOS程序、手机网页端、电脑网页端以及自定义方式。无论用户从哪个平台或设备登录,都能享受到流畅、统一的账号体验。
请注意,通过 微信服务号 和 微信小程序 等授权方式登录的用户,初始状态为临时用户。为了保障账号的正式性和安全性,我们要求用户通过手机号短信验证并绑定手机号,完成这一过程后,用户将升级为正式用户,享受更多会员权益和服务。
我们致力于为用户提供更加便捷、安全的账号管理体验,不断优化和完善多端账号中心的功能与服务。
数据关联模型:
临时用户(usid)
<->
绑定手机(bind)
<->
正式用户(unid)
注意事项:
用户账号编号 unid
的获取流程如下:终端账号登录后,通过调用 $account->bind()
方法来创建或绑定用户账号。成功绑定后,系统将返回用户账号编号 unid
的值,作为该用户账号的唯一标识。
若需取消终端账号与用户账号的关联,可调用 $account->unbind()
方法。一旦关联被取消,该终端账号便可重新绑定其他用户账号,实现灵活的用户账号管理。
通过用户登录接口,换取 JWT-TOKEN 内容,之后接口需要在每次请求的头部 header 加上 Api-Token 字段并带上之后获取到的值。
接口文档: https://documenter.getpostman.com/view/4518676/2s93eeRpDr
特别注意: 调用接口时后台接口未启动 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
本插件涉及数据表有:
plugin_account_auth
plugin_account_bind
plugin_account_msms
plugin_account_user
ThinkPlugsAccount 为 ThinkAdmin 会员插件。
未获得此插件授权时仅供参考学习不可商用,了解商用授权请阅读 《会员授权》。
版权所有 Copyright © 2014-2024 by ThinkAdmin (https://thinkadmin.top) All rights reserved。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。