用户系统
CarefreeCMS 提供完善的用户管理系统,支持前台用户注册、登录、个人中心等功能。
功能概览
用户注册
注册方式
- 邮箱注册
- 手机号注册
- 第三方登录(微信、QQ、微博)
- 管理员添加
注册配置
// config/user.php
return [
// 允许注册
'allow_register' => true,
// 需要邮箱验证
'email_verify' => true,
// 需要手机验证
'phone_verify' => false,
// 默认用户组
'default_group' => 'member',
// 初始积分
'init_points' => 100,
];
用户登录
登录方式
- 用户名/密码
- 邮箱/密码
- 手机号/验证码
- 第三方登录
安全设置
- 登录失败次数限制
- 验证码验证
- 两步验证(可选)
- 异地登录提醒
用户权限
用户组
- 管理员
- 编辑
- VIP 会员
- 普通会员
- 游客
权限控制
- 发布文章
- 发表评论
- 下载附件
- 访问特定内容
前台用户中心
个人资料
基本信息
头像
昵称
性别
生日
所在地
个人简介
联系方式
邮箱
手机号
QQ
微信
账号安全
修改密码
绑定邮箱
绑定手机
两步验证
登录历史
我的内容
我的文章
- 已发布
- 草稿箱
- 审核中
- 已删除
我的评论
- 全部评论
- 收到的回复
- 点赞的评论
我的收藏
- 收藏的文章
- 收藏的专题
- 收藏夹管理
消息通知
消息类型
- 系统通知
- 评论回复
- 点赞提醒
- 关注提醒
- 私信
消息设置
- 邮件通知
- 站内通知
- 推送通知
后台用户管理
用户列表
用户管理 → 用户列表
列表字段
ID | 用户名 | 昵称 | 邮箱 | 用户组 | 状态 | 注册时间 | 操作
筛选条件
- 用户组
- 状态(正常/禁用)
- 注册时间
- 关键词搜索
添加用户
1. 点击"添加用户"
2. 填写用户信息
- 用户名(必填)
- 密码(必填)
- 邮箱(必填)
- 昵称
- 用户组
- 状态
3. 保存
编辑用户
可编辑内容
- 基本信息
- 联系方式
- 用户组
- 权限设置
- 状态
不可编辑
- 用户名
- 注册时间
- 注册IP
用户操作
启用/禁用
禁用用户:
- 无法登录
- 内容隐藏
- 评论不显示
重置密码
1. 编辑用户
2. 点击"重置密码"
3. 输入新密码
4. 保存
删除用户
删除选项:
- 保留内容(推荐)
- 删除所有内容
用户组管理
默认用户组
管理员(admin)
- 最高权限
- 管理所有内容
- 系统设置
编辑(editor)
- 发布文章
- 审核内容
- 管理评论
会员(vip)
- 发布文章
- 无广告
- 特权内容
普通用户(member)
- 发表评论
- 收藏文章
- 基本功能
创建用户组
1. 用户管理 → 用户组
2. 添加用户组
3. 设置基本信息
- 组名
- 标识
- 排序
4. 分配权限
5. 保存
用户组权限
内容权限
☑ 发布文章
☑ 编辑文章
☑ 删除文章
☐ 审核文章
☑ 发表评论
☐ 删除评论
系统权限
☐ 用户管理
☐ 系统设置
☐ 插件管理
☐ 数据备份
特殊权限
☑ 访问 VIP 内容
☑ 无限下载
☑ 无广告
☑ 自定义头衔
用户等级
等级设置
'user_levels' => [
[
'level' => 1,
'name' => '新手上路',
'points' => 0,
'icon' => 'level1.png'
],
[
'level' => 2,
'name' => '初级会员',
'points' => 100,
'icon' => 'level2.png'
],
[
'level' => 3,
'name' => '中级会员',
'points' => 500,
'icon' => 'level3.png'
],
[
'level' => 4,
'name' => '高级会员',
'points' => 2000,
'icon' => 'level4.png'
],
[
'level' => 5,
'name' => 'VIP 会员',
'points' => 5000,
'icon' => 'level5.png'
],
],
等级特权
等级1(新手上路)
- 发表评论
- 收藏文章
等级2(初级会员)
- 发布文章
- 上传图片
等级3(中级会员)
- 上传附件
- 创建专题
等级4(高级会员)
- 自定义头衔
- 发送私信
等级5(VIP会员)
- 访问全部内容
- 无广告
- 优先展示
积分系统
积分获取
注册奖励
新用户注册:+100 积分
日常操作
每日登录:+10 积分
发布文章:+20 积分
评论文章:+5 积分
文章被赞:+2 积分
评论被赞:+1 积分
完善资料
完善个人资料:+50 积分
绑定邮箱:+30 积分
绑定手机:+30 积分
实名认证:+100 积分
积分消耗
下载资源
下载附件:-10 积分
下载付费内容:-50 积分
兑换特权
VIP 月卡:-500 积分
自定义头衔:-200 积分
隐藏广告:-100 积分/月
积分规则
// config/points.php
return [
'register' => 100, // 注册
'login' => 10, // 登录
'publish_article' => 20, // 发布文章
'comment' => 5, // 评论
'article_liked' => 2, // 文章被赞
'download' => -10, // 下载
];
第三方登录
微信登录
配置
'wechat' => [
'app_id' => 'your_app_id',
'app_secret' => 'your_app_secret',
'callback' => 'http://your-domain.com/auth/wechat/callback',
],
实现
use Overtrue\Socialite\SocialiteManager;
// 跳转到微信授权页
public function wechat()
{
$config = config('oauth.wechat');
$socialite = new SocialiteManager($config);
return redirect($socialite->driver('wechat')->redirect());
}
// 回调处理
public function wechatCallback()
{
$config = config('oauth.wechat');
$socialite = new SocialiteManager($config);
$user = $socialite->driver('wechat')->user();
// 查找或创建用户
$localUser = $this->findOrCreateUser($user, 'wechat');
// 登录
session('user_id', $localUser->id);
return redirect('/');
}
QQ登录
配置和实现类似微信登录。
微博登录
配置和实现类似微信登录。
用户统计
用户概况
总用户数:10,234
今日新增:56
本周新增:312
本月新增:1,245
活跃度统计
今日活跃:1,234
本周活跃:5,678
本月活跃:12,345
用户分布
按用户组
管理员:5
编辑:20
VIP会员:234
普通会员:9,975
按等级
新手上路:5,000
初级会员:3,000
中级会员:1,500
高级会员:600
VIP会员:134
按地区
北京:2,345
上海:1,890
广东:3,456
...
用户安全
密码安全
密码规则
'password' => [
'min_length' => 8,
'require_uppercase' => true,
'require_lowercase' => true,
'require_number' => true,
'require_special' => false,
],
密码加密
// 使用 bcrypt 加密
$password = password_hash($plainPassword, PASSWORD_BCRYPT);
// 验证密码
if (password_verify($plainPassword, $hashedPassword)) {
// 密码正确
}
登录安全
失败次数限制
// 5次失败锁定30分钟
$attempts = Cache::get('login_attempts_' . $username, 0);
if ($attempts >= 5) {
throw new \Exception('登录失败次数过多,请30分钟后重试');
}
// 登录失败
Cache::set('login_attempts_' . $username, $attempts + 1, 1800);
异地登录提醒
// 检测异地登录
$lastLoginIp = $user->last_login_ip;
$currentIp = request()->ip();
if ($lastLoginIp && $lastLoginIp != $currentIp) {
// 发送提醒邮件
Mail::send('mail/login_alert', [
'user' => $user,
'ip' => $currentIp,
'time' => date('Y-m-d H:i:s')
], function($message) use ($user) {
$message->to($user->email)
->subject('异地登录提醒');
});
}
两步验证
启用两步验证
1. 个人中心 → 账号安全
2. 启用两步验证
3. 扫描二维码
4. 输入验证码
5. 保存备用码
登录验证
use PragmaRX\Google2FA\Google2FA;
// 生成密钥
$google2fa = new Google2FA();
$secret = $google2fa->generateSecretKey();
// 验证码
$valid = $google2fa->verifyKey($secret, $code);
API接口
用户注册
POST /api/auth/register
Content-Type: application/json
{
"username": "user001",
"password": "password123",
"email": "user@example.com",
"captcha": "ABCD"
}
用户登录
POST /api/auth/login
Content-Type: application/json
{
"username": "user001",
"password": "password123"
}
获取用户信息
GET /api/user/profile
Authorization: Bearer {token}
更新用户信息
PUT /api/user/profile
Authorization: Bearer {token}
Content-Type: application/json
{
"nickname": "新昵称",
"avatar": "https://example.com/avatar.jpg"
}
最佳实践
注册引导
简化注册流程
- 只要求必填项
- 支持第三方登录
- 可选邮箱验证
新手引导
- 注册后自动跳转引导页
- 完善资料奖励积分
- 推荐关注用户/内容
用户激活
激活奖励
- 完善资料送积分
- 首次发文送VIP
- 邀请好友送特权
活跃度维护
- 签到送积分
- 每日任务
- 活动参与
用户留存
内容推荐
- 基于兴趣推荐
- 个性化首页
- 关注动态
互动鼓励
- 评论提醒
- 点赞通知
- 关注提醒
常见问题
如何批量导入用户?
- 准备CSV文件
- 用户管理 → 导入用户
- 上传文件
- 预览数据
- 确认导入
忘记密码怎么办?
用户端:
- 登录页点击"忘记密码"
- 输入邮箱/手机号
- 接收验证码
- 设置新密码
管理员端:
- 用户列表找到用户
- 点击"重置密码"
- 设置新密码
如何防止恶意注册?
防护措施:
- 开启验证码
- 邮箱/手机验证
- 限制注册频率
- IP 黑名单
- 邀请码注册
