配置
auth 登录需改配置 config>auth 引入自己创建的登录模型
html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form action="loginData" method="post" >
@csrf
<input type="text" name="username" placeholder="请输入账号"><br>
<input type="text" name="password" placeholder="请输入密码"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
Route
Route::get('/', function () {
return view('welcome');
});
//登录页面
Route::view('login','login');
//登录数据验证路由
Route::post('loginData',[\App\Http\Controllers\loginController::class,'loginData']);
//展示页面加入中间件防翻墙
Route::get('showData',[\App\Http\Controllers\loginController::class,'showData'])->middleware(\App\Http\Middleware\middle::class);
控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class loginController extends Controller
{
public function loginData(Request $request)
{
$username=$request->get('username');
$password=$request->get('password');
// 数据表的密码必须是用这个bcrypt();函数加密过的
//验证账号密码是否正确
$res= Auth::attempt([
'username'=>$username,
'password'=>$password,
]);
if($res)
{
//登录成功直接跳转展示页面
return redirect('showData');
}else{
//失败返回登录页面
return redirect('login');
}
}
public function showData(Request $request)
{
print_r('我是列表页面');
}
}
模型
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
//Auth登录需引入Auth\User 并起个别名给模型继承
use Illuminate\Foundation\Auth\User as Auth;
class login extends Auth
{
use HasFactory;
//登录表名(表里的密码必须是bcrypt()函数加密后入库)
protected $table='login';
}
中间件防翻墙
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class middle
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
//如果没有登录信息直接跳转登录页面
if(!Auth::check())
{
return redirect('login');
}
return $next($request);
}
}