74 lines
1.7 KiB
PHP
74 lines
1.7 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace app\controller;
|
||
|
|
||
|
use support\Request;
|
||
|
|
||
|
use App\Utils\ApiResponse;
|
||
|
|
||
|
|
||
|
use Tinywan\Jwt\JwtToken;
|
||
|
use App\model\Users;
|
||
|
|
||
|
class UserController
|
||
|
{
|
||
|
|
||
|
/**
|
||
|
* 不需要登录的方法
|
||
|
*/
|
||
|
protected $noNeedLogin = ['login','register'];
|
||
|
|
||
|
/**
|
||
|
* Undocumented function
|
||
|
* 登录
|
||
|
* @param Request $request
|
||
|
* @return void
|
||
|
*/
|
||
|
public function login(Request $request)
|
||
|
{
|
||
|
// 获取请求数据
|
||
|
$data = $request->post();
|
||
|
|
||
|
// 根据手机号查询用户
|
||
|
$db = Users::where('phone', '=', $data['phone'])->first();
|
||
|
|
||
|
// 如果未找到用户,返回错误
|
||
|
if (!$db) {
|
||
|
return ApiResponse::error(402,[] ,'用户未注册');
|
||
|
}
|
||
|
|
||
|
// 获取用户输入的密码
|
||
|
$password = $data['password'];
|
||
|
|
||
|
// 验证密码是否正确
|
||
|
if (password_verify($password, $db->password)) {
|
||
|
$user = [
|
||
|
'id' => $db->id,
|
||
|
'nickname' => $db->nickname,
|
||
|
'phone' => $db->phone
|
||
|
];
|
||
|
// 如果密码正确,生成 JWT 令牌
|
||
|
$token = JwtToken::generateToken($user);
|
||
|
|
||
|
// 返回成功响应和用户信息(可以将 token 添加到响应中)
|
||
|
return ApiResponse::success(200, [
|
||
|
'user' => $user, // 返回用户信息
|
||
|
'token' => $token // 返回生成的 token
|
||
|
]);
|
||
|
} else {
|
||
|
// 密码错误,返回错误响应
|
||
|
return ApiResponse::error(402,[], '用户或密码错误');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 注册
|
||
|
*/
|
||
|
public function register(Request $request)
|
||
|
{
|
||
|
$data = $request->post();
|
||
|
$res = [];
|
||
|
return ApiResponse::success(200, $res);
|
||
|
}
|
||
|
}
|