Day15 用户登录和注册接口

本文档详细介绍了如何实现用户登录和注册功能。包括创建LoginController、定义UserDto并实现属性通知绑定,设置AutoMapper映射,设计ILoginService接口及LoginService实现,以及在控制器和服务中注入依赖。
摘要由CSDN通过智能技术生成

本章节实现了用户登录和注册,效果如下

用户登录和注册


一.创建用户登录注册控制器 LoginController

    /// <summary>
    /// 用户登录注册控制器
    /// </summary>
    [ApiController]
    [Route("api/[controller]/[actio
以下是一个简单的基于 PHP+MySQL 实现课表增删改查的接口示例代码: 数据库表结构: ``` CREATE TABLE `course` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `teacher` varchar(255) NOT NULL, `classroom` varchar(255) NOT NULL, `day` int(11) NOT NULL, `time` int(11) NOT NULL, `user_id` int(11) NOT NULL, PRIMARY KEY (`id`) ); ``` 课表增删改查接口代码: ``` <?php // 连接数据库 $pdo = new PDO('mysql:host=localhost;dbname=database_name;charset=utf8mb4', 'username', 'password'); // 获取请求类型 $request_method = $_SERVER['REQUEST_METHOD']; // 获取请求参数 if ($request_method == 'GET') { $id = isset($_GET['id']) ? $_GET['id'] : ''; } else { $input = file_get_contents('php://input'); $data = json_decode($input, true); $id = isset($data['id']) ? $data['id'] : ''; $name = isset($data['name']) ? $data['name'] : ''; $teacher = isset($data['teacher']) ? $data['teacher'] : ''; $classroom = isset($data['classroom']) ? $data['classroom'] : ''; $day = isset($data['day']) ? $data['day'] : ''; $time = isset($data['time']) ? $data['time'] : ''; $user_id = isset($data['user_id']) ? $data['user_id'] : ''; } // 处理请求 switch ($request_method) { case 'GET': if ($id) { $stmt = $pdo->prepare('SELECT * FROM course WHERE id = ?'); $stmt->execute([$id]); $result = $stmt->fetch(PDO::FETCH_ASSOC); echo json_encode($result); } else { $stmt = $pdo->prepare('SELECT * FROM course'); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); echo json_encode($result); } break; case 'POST': $stmt = $pdo->prepare('INSERT INTO course (name, teacher, classroom, day, time, user_id) VALUES (?, ?, ?, ?, ?, ?)'); $stmt->execute([$name, $teacher, $classroom, $day, $time, $user_id]); echo json_encode(['status' => 'success']); break; case 'PUT': $stmt = $pdo->prepare('UPDATE course SET name = ?, teacher = ?, classroom = ?, day = ?, time = ?, user_id = ? WHERE id = ?'); $stmt->execute([$name, $teacher, $classroom, $day, $time, $user_id, $id]); echo json_encode(['status' => 'success']); break; case 'DELETE': $stmt = $pdo->prepare('DELETE FROM course WHERE id = ?'); $stmt->execute([$id]); echo json_encode(['status' => 'success']); break; } ``` 用户登录注册接口代码: ``` <?php // 连接数据库 $pdo = new PDO('mysql:host=localhost;dbname=database_name;charset=utf8mb4', 'username', 'password'); // 获取请求类型 $request_method = $_SERVER['REQUEST_METHOD']; // 获取请求参数 if ($request_method == 'POST') { $input = file_get_contents('php://input'); $data = json_decode($input, true); $username = isset($data['username']) ? $data['username'] : ''; $password = isset($data['password']) ? $data['password'] : ''; $type = isset($data['type']) ? $data['type'] : ''; } // 处理请求 switch ($request_method) { case 'POST': if ($type == 'register') { // 注册 $stmt = $pdo->prepare('INSERT INTO user (username, password) VALUES (?, ?)'); $stmt->execute([$username, $password]); echo json_encode(['status' => 'success']); } else if ($type == 'login') { // 登录 $stmt = $pdo->prepare('SELECT * FROM user WHERE username = ? AND password = ?'); $stmt->execute([$username, $password]); $result = $stmt->fetch(PDO::FETCH_ASSOC); if ($result) { echo json_encode(['status' => 'success', 'user_id' => $result['id']]); } else { echo json_encode(['status' => 'fail']); } } break; } ``` 管理员后台页面增删改查接口代码: ``` <?php // 连接数据库 $pdo = new PDO('mysql:host=localhost;dbname=database_name;charset=utf8mb4', 'username', 'password'); // 获取请求类型 $request_method = $_SERVER['REQUEST_METHOD']; // 获取请求参数 if ($request_method == 'GET') { $id = isset($_GET['id']) ? $_GET['id'] : ''; } else { $input = file_get_contents('php://input'); $data = json_decode($input, true); $id = isset($data['id']) ? $data['id'] : ''; $name = isset($data['name']) ? $data['name'] : ''; $status = isset($data['status']) ? $data['status'] : ''; } // 处理请求 switch ($request_method) { case 'GET': if ($id) { $stmt = $pdo->prepare('SELECT * FROM order WHERE id = ?'); $stmt->execute([$id]); $result = $stmt->fetch(PDO::FETCH_ASSOC); echo json_encode($result); } else { $stmt = $pdo->prepare('SELECT * FROM order'); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); echo json_encode($result); } break; case 'PUT': $stmt = $pdo->prepare('UPDATE order SET name = ?, status = ? WHERE id = ?'); $stmt->execute([$name, $status, $id]); echo json_encode(['status' => 'success']); break; case 'DELETE': $stmt = $pdo->prepare('DELETE FROM order WHERE id = ?'); $stmt->execute([$id]); echo json_encode(['status' => 'success']); break; } ``` 以上是一个简单的示例,其中需根据具体需求进行修改。同时也需要注意接口的安全性,比如防止 SQL 注入等安全问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小丫头呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值