Laravel框架登錄功能實例

一、添加路由器

Route::group( [ 'middleware'=>[] , 'prefix'=>'admin' , 'namespace'=>'Admin' , 'as'=>'admin.' ] , function(){

    /********************login********************/
    Route::get('login','LoginController@index')->name( 'login' );//登錄界面
    /********************登錄后的組************************/
    Route::group( [ 'middleware'=>[ 'admin.auth' ] ] , function(){

        Route::get('/','IndexController@index');//后臺首頁

    });

});

二、制作驗證類

<?php

namespace App\Http\Middleware;

use Closure;

class AdminAuth
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure                 $next
     *
     * @return mixed
     */
    public function handle( $request , Closure $next )
    {
        if( !auth( 'admin' )->check() ){
            return redirect()->route( 'admin.login' );
        }

        return $next( $request );
    }

}

注:放入app\http\middleware文件目錄中

三、添加驗證類到app\http\kernel.php文件中
頭部加上use引入
use App\Http\Middleware\AdminAuth;

在函數(shù)中加入

protected $routeMiddleware = [
    'admin.auth'=> AdminAuth::class,
];

四、config\auth.php文件中加上配置

'guards' => [

    'admin' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],

],


'providers' => [

    'admins' => [
        'driver' => 'eloquent',
        'model' => \App\Models\Admin::class,
    ]
],

五、建立admin模型

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;

class Admin extends Authenticatable
{

}

表和模型同名 ,必須有三個字段 username password remember_token

六、login控制器中的登錄驗證方法


if(auth( 'admin' )->attempt( [ 'username'=>$request->username , 'password'=>$request->password ] , $request->remember ) ){
    return $this->success(  '登錄成功' );
}

return $this->fail(  '賬號或密碼不正確' );

七、返回函數(shù)

public function success($info,$data = [])
{
    $return = [
        'data'=>$data,
        'status' => 'y',
    ];
    if($info){
        $return['info'] = $info;
    }
    return response()->json($return);
}

public function fail($info)
{
    $return = [
        'info' => $info,
        'status' => 'n',
    ];
    return response()->json($return);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容