ThinkPHP 是一个基于 PHP 的轻量级 Web 开发框架,它遵循 MVC 设计模式,提供了丰富的功能和组件,方便开发者快速构建 Web 应用程序。在 ThinkPHP 中,判断用户是否登录通常涉及到会话(Session)管理和用户认证机制。
<?php
namespace app\index\controller;
use think\Controller;
use think\Request;
class Login extends Controller
{
public function index(Request $request)
{
if ($request->isPost()) {
$username = $request->post('username');
$password = $request->post('password');
// 验证用户名和密码
if ($username === 'admin' && $password === '123456') {
// 设置会话
session('user_id', 1);
return redirect('/index/index');
} else {
return '登录失败';
}
}
return view();
}
public function checkLogin()
{
if (session('?user_id')) {
return '已登录';
} else {
return '未登录';
}
}
}<?php
namespace app\index\controller;
use think\Controller;
use think\Request;
use Firebase\JWT\JWT;
class Login extends Controller
{
private $key = 'your_secret_key';
public function index(Request $request)
{
if ($request->isPost()) {
$username = $request->post('username');
$password = $request->post('password');
// 验证用户名和密码
if ($username === 'admin' && $password === '123456') {
$token = [
'user_id' => 1,
'exp' => time() + 3600 // 过期时间 1 小时
];
$jwt = JWT::encode($token, $this->key);
return json(['token' => $jwt]);
} else {
return json(['error' => '登录失败']);
}
}
return view();
}
public function checkLogin(Request $request)
{
$token = $request->header('Authorization');
try {
$decoded = JWT::decode($token, $this->key, ['HS256']);
return json(['status' => '已登录', 'user_id' => $decoded->user_id]);
} catch (\Exception $e) {
return json(['status' => '未登录', 'error' => $e->getMessage()]);
}
}
}session_start() 在脚本开头调用,或者配置文件中启用了会话。通过以上方法,可以有效地实现 ThinkPHP 中的用户登录判断,并解决常见的登录相关问题。
没有搜到相关的文章