laravel入門實戰開發(四):自定義登錄開發

  • 上一節,我們簡單分析了默認登錄模塊的邏輯
  • 這一節,我們來改寫成我們所需要的
  • 我們根據上一節分析的,先創建登錄登出需要的路由,推薦路由-》控制器-》視圖的創建模式,使用起來不容易出錯,創建控制器比較方便
  • 這裏是開發項目後臺,我們放在一個後臺路由組裏,並且給一個後臺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,進行登錄
    在這裏插入圖片描述
    在這裏插入圖片描述
  • 到這裏我們自定義的登錄模塊已經完成,下一節將實現用戶名、手機號、郵箱多字段登錄
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章