tp5 用户注册;登录
时间: 2023-09-14 16:06:23 浏览: 53
TP5 中的用户注册和登录可以通过使用 TP5 自带的 Auth 来实现。
1. 配置数据库连接
在 `config/database.php` 文件中配置数据库连接信息,例如:
```php
return [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => 'localhost',
// 数据库名
'database' => 'test',
// 用户名
'username' => 'root',
// 密码
'password' => '123456',
// 端口
'hostport' => '3306',
];
```
2. 创建用户表
在数据库中创建一个用户表,例如:
```sql
CREATE TABLE `user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL DEFAULT '',
`password` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
3. 创建 Auth 配置文件
在 `config` 目录下创建 `auth.php` 配置文件,内容如下:
```php
<?php
return [
// 认证方式
'type' => 'database',
// 数据库认证
'database' => [
// 数据库连接标识
'connection' => '',
// 用户信息表名
'user_table' => 'user',
// 用户名字段名
'username' => 'username',
// 密码字段名
'password' => 'password',
// 用户状态字段名
'status' => '',
// 验证码字段名
'verify' => '',
],
];
```
4. 注册用户
在控制器中编写注册代码,例如:
```php
<?php
namespace app\index\controller;
use think\Controller;
use think\Request;
use think\facade\Session;
use think\facade\Config;
use think\facade\Validate;
class Register extends Controller
{
public function index()
{
return view();
}
public function register(Request $request)
{
// 获取 POST 数据
$username = $request->post('username');
$password = $request->post('password');
// 验证数据
$validate = Validate::make([
'username' => 'require|unique:user',
'password' => 'require|min:6',
], [
'username.require' => '用户名不能为空',
'username.unique' => '用户名已存在',
'password.require' => '密码不能为空',
'password.min' => '密码长度不能少于6位',
]);
if (!$validate->check([
'username' => $username,
'password' => $password,
])) {
return json([
'code' => 0,
'msg' => $validate->getError(),
]);
}
// 创建用户
$user = new \app\index\model\User;
$user->username = $username;
$user->password = password_hash($password, PASSWORD_DEFAULT);
$user->save();
return json([
'code' => 1,
'msg' => '注册成功',
]);
}
}
```
5. 登录用户
在控制器中编写登录代码,例如:
```php
<?php
namespace app\index\controller;
use think\Controller;
use think\Request;
use think\facade\Session;
use think\facade\Config;
class Login extends Controller
{
public function index()
{
return view();
}
public function login(Request $request)
{
// 获取 POST 数据
$username = $request->post('username');
$password = $request->post('password');
// 验证用户名和密码
$user = \think\facade\Auth::attempt([
'username' => $username,
'password' => $password,
]);
if (!$user) {
return json([
'code' => 0,
'msg' => '用户名或密码错误',
]);
}
// 登录用户
\think\facade\Auth::login($user);
return json([
'code' => 1,
'msg' => '登录成功',
]);
}
}
```
以上代码仅供参考,实际应用中需要根据需求进行修改。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)