- 上一節,我們簡單分析了默認登錄模塊的邏輯
- 這一節,我們來改寫成我們所需要的
- 我們根據上一節分析的,先創建登錄登出需要的路由,推薦路由-》控制器-》視圖的創建模式,使用起來不容易出錯,創建控制器比較方便
- 這裏是開發項目後臺,我們放在一個後臺路由組裏,並且給一個後臺admin文件夾
Route::prefix('admin')->namespace('Admin')->group(function (){
Route::get('login', 'LoginController@showLoginForm');
Route::post('login', 'LoginController@login')->name('admin.login');
Route::post('logout', 'LoginController@logout')->name('admin.logout');
});
- 打印路由
ReflectionException:😦“Class App\Http\Controllers\Admin\LoginController does not exist”)
- 根據提示我們創建LoginController 控制器
php artisan make:controller Admin\LoginController
我們屏蔽掉自帶的Auth::routes();
路由,看下路由
打開LoginController控制器,根據默認LoginController的格式進行改寫,並準備好登錄相關頁面。
- 再創建一個測試路由和控制器方法來打印登錄用戶
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class TestController extends Controller
{
public function index(){
return \Auth()->user();
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $redirectTo = '/admin';
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function username()
{
return 'name';
}
public function showLoginForm()
{
return view('admin.auth.login');
}
public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->invalidate();
return redirect('/admin/login');
}
}
- 根據上一節註冊的賬號,我這裏是admin密碼12345678,進行登錄
- 到這裏我們自定義的登錄模塊已經完成,下一節將實現用戶名、手機號、郵箱多字段登錄