《使用ThinkPHP6开发项目》 - 登录接口二
2023-12-14 05:12:50
《使用ThinkPHP6开发项目》 - 登录接口一-CSDN博客
说到登录,这就涉及到数据验证和数据库
这里要创建数据库以及登录要用到的用户表
1)创建管理员表
CREATE TABLE `vanus_system_admin` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT '管理员表ID',
`account` varchar(32) NOT NULL DEFAULT '' COMMENT '管理员账号',
`password` varchar(100) NOT NULL DEFAULT '' COMMENT '管理员密码',
`avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '管理员头像',
`real_name` varchar(16) NOT NULL DEFAULT '' COMMENT '管理员姓名',
`role_id` varchar(128) NOT NULL DEFAULT '' COMMENT '管理员权限(menus_id)',
`last_ip` varchar(16) NOT NULL DEFAULT '' COMMENT '管理员最后一次登录ip',
`last_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '管理员最后一次登录时间',
`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
`login_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '登录次数',
`level` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '管理员级别',
`status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '管理员状态:1.有效 0.无效',
`is_del` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否删除',
PRIMARY KEY (`id`) USING BTREE,
KEY `account` (`account`) USING BTREE,
KEY `status` (`status`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='后台管理员表';
2)查看表数据
3)配置数据库,《使用ThinkPHP6开发项目》 - 设置项目环境变量-CSDN博客
4)创建模型文件,模型文件名可与表名一致,使用驼峰式命名
php think make:model admin@SystemAdmin
<?php
declare (strict_types = 1);
namespace app\admin\model;
use think\Model;
/**
* @mixin \think\Model
*/
class SystemAdmin extends Model
{
//
}
如果文件名与表名不一致,则要定义表名
//文件名与表名不一致时
protected $name = 'system_admin'; // 表名
// 如果表前缀与数据库配置的表前缀不一致,则要设置表全名
protected $table = 'cms_system_admin';
?表主键如果为id,则默认主键为id,若不是id,则需要设置主键值
protected $pk = 'uid'; // uid为表主键
<?php
declare (strict_types = 1);
namespace app\admin\model;
use think\Model;
/**
* @mixin \think\Model
*/
class SystemAdmin extends Model
{
protected $table = 'cms_system_admin';
protected $pk = 'uid';
}
这里可以使用service去处理登录方法
5)创建service文件,使用驼峰式命名
php think make:service admin@SystemAdmin
修改admin\service\SystemAdmin.php文件中,创建AdminLogin方法
app\admin\service\SystemAdmin.php
<?php
declare (strict_types = 1);
namespace app\admin\service;
use app\admin\model\SystemAdmin as SystemAdminModel;
class SystemAdmin extends \think\Service
{
// 管理员登录
public static function AdminLogin(array $param)
{
$model = new SystemAdminModel();
$info = $model->where('account',$param['account'])->find();
if(empty($info)) return ['status'=>500,'msg'=>'用户不存在'];
$info = $info->toArray();
if($param['password'] == $info['password']){
return ['status'=>200,'msg'=>'登录成功'];
}else{
return ['status'=>500,'msg'=>'密码错误'];
}
}
}
app\admin\controller\Passport.php
<?php
declare (strict_types = 1);
namespace app\admin\controller;
use app\admin\service\SystemAdmin;
class Passport extends SystemAdmin
{
//登录
public function login()
{
$param = request()->param();
if(empty($param['account'])) return json(['status'=>201,'msg'=>'账号必填']);
if(empty($param['password'])) return json(['status'=>201,'msg'=>'密码必填']);
$result = self::AdminLogin($param);
return json($result);
}
}
到这登录接口就完成了
文章来源:https://blog.csdn.net/centaury32/article/details/134974860
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!