ThinkPHP 是一个基于 PHP 的轻量级 Web 开发框架,它遵循 MVC 设计模式,旨在简化 Web 应用的开发和维护。用户登录是 Web 应用中最常见的功能之一,通常涉及用户身份验证和会话管理。
用户登录主要分为以下几种类型:
用户登录广泛应用于各种 Web 应用,如社交平台、电商平台、在线教育平台等。
以下是一个基于 ThinkPHP 的用户登录示例代码:
<?php
namespace app\index\controller;
use think\Controller;
use think\Request;
use app\index\model\User;
class Login extends Controller
{
public function index()
{
return $this->fetch();
}
public function doLogin(Request $request)
{
$username = $request->param('username');
$password = $request->param('password');
$user = User::get(['username' => $username]);
if ($user && password_verify($password, $user->password)) {
session('user_id', $user->id);
return json(['code' => 200, 'msg' => '登录成功']);
} else {
return json(['code' => 400, 'msg' => '用户名或密码错误']);
}
}
public function logout()
{
session('user_id', null);
return json(['code' => 200, 'msg' => '退出成功']);
}
}config/session.php 配置文件,确保 Session 存储路径和 Cookie 设置正确。password_verify 函数进行验证。<?php
namespace app\index\middleware;
use think\facade\Request;
use think\Response;
class AllowCrossDomain
{
public function handle($request, \Closure $next)
{
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Authorization');
if (Request::isOptions()) {
return Response::create('', '204');
}
return $next($request);
}
}然后在 app/middleware.php 中添加该中间件:
return [
\app\index\middleware\AllowCrossDomain::class,
];通过以上步骤,可以解决用户登录过程中常见的技术问题。