Auth认证
-
登录
//需要使用两个类 //use Illuminate\Support\Facades\Auth; //use Illuminate\Support\Facades\Redirect; //登录行为 public function login() { //验证 $this->validate(request(),[ 'email'=>'required|email', 'password'=>'required|min:5|max:10', 'is_remember'=>'integer'//判断是否是int类型 ]); $user = request(['email','password']); $is_remember = boolval(request('is_remember')); if (Auth::attempt($user,$is_remember)){ //通过Auth判断是否认证通过,是否需要记住该用户 return redirect('article/index'); }else{ //登录失败,返回上一个页面也就是登录表单页面,并提示错误信息 return Redirect::back()->witherrors("邮箱或密码错误"); } }
//获取用户ID
$userid = Auth::id();//获取的是一个数组
//获取用户名称
\Auth::user()->name 其中user是指model -
登出
//登出 public function logout() { Auth::logout();//执行登出操作 return redirect('login');//重定向到登录页面 }
-
如何进行Auth认证?
①进入config/auth.php页面
②分析页面内容
③注意:laravel中如果模型时user,那么默认表名就是users,默认+s,当然也可以通过protected $table = ''表名来修改
<?php return [ 'defaults' => [ 'guard' => 'web',//默认的首位是web 'passwords' => 'users', ], 'guards' => [ 'web' => [ 'driver' => 'session',//web默认的驱动是使用session来存储用户信息 'provider' => 'users',//提供者是users ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent',//使用的是模型 'model' => App\User::class, /*如果我们的用户表的model,并且我们用户标的model要继承该类 例如 use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable*/ ], /*'users' => [ 'driver' => 'database', 'table' => 'users',//这就是我们的用户表名,这一种和上一种使用一个就行 ],*/ ], 'passwords' => [ 'users' => [ 'provider' => 'users', 'table' => 'password_resets', 'expire' => 60, ], ], ];