laravel8 Auth登录(中间件防翻墙)

配置

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);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值