6.用户登录验证

1.登录时使用ORM MODEL,在where条件下获取数据,并使用firstOrFail()方法限制只获取第一项数据,当没有找到该用户数据时,则会显示错误信息。当有多个条件时,后续接着加入->where()方法

$input = request()->all();

$User = User::where('email',$input['email'])->where('type','A')->firstOrFail();


2.到处Eloquent SQL 语法

use DB;

DB::enableQueryLog();

$input = request()->all();

$User = User::where('email',$input['email'])->firstOrFail();

var_dump(DB::getQueryLog());


3.上一节加密密码用的书Hash::make(),验证密码时用Hash::check();原本的withErrors时传入验证器变量$validator,也可以传入错误信息数组的变量

// 檢查密碼是否正確

$is_password_correct = Hash::check($input['password'], $User->password);

if (!$is_password_correct) {

    // 密碼錯誤回傳錯誤訊息

    $error_message = [

        'msg' => [

            '密碼驗證錯誤',

],

];

    return redirect('/user/auth/sign-in')

        ->withErrors($error_message)

->withInput();

}


4.验证登录通过后,存入session,使用session()->put(),之后可以重新導向到原先使用者造訪頁面,沒有嘗試造訪頁則重新導向回首頁。redirect()->intended('/');

// session 紀錄會員編號

session()->put('user_id', $User->id);

// 重新導向到原先使用者造訪頁面,沒有嘗試造訪頁則重新導向回首頁

return redirect()->intended('/');


5.Session设置

session的设置都放在config/session.php文件中

6.模板中session数据判断使用session()->has();

@if(session()->has('user_id'))

显示1

@else

显示2

@endif


7.消除session使用session()->forget();

session()->forget('user_id');

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容