Laravel- Auth 登录验证
Auth登录验证是laravel框架自带的一种登录验证方式,下面来介绍一下用Auth来实现用户的登录,退出,及获取登录用户信息的方法。
以laravel5.5框架为例,首先创建一个user model,关联数据库的user表,生成的模型内容如下:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
//关联表
protected $table = 'users';
//可添加字段
protected $fillable = ['name','email','password'];
//隐藏字段
protected $hidden = ['password','member_token'];
}
1.实现Auth登录的第一步就是对生成的模型进行改造,引入Authenticatable认证接口,并且改变model的继承方式,改为Authenticatable继承,改造后的代码如下:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
//关联表
protected $table = 'users';
//可添加字段
protected $fillable = ['name','email','password'];
//隐藏字段
protected $hidden = ['password','member_token'];
}
2.在laravel框架中找到config文件中的auth.php文件,找到如下代码:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
这部分是auth认证模块的数据接口,把model的路径改为刚才创建的model路径即可。
3.在更改好user模型之后,我们就可以进行对此模型信息的登录认证功能了。Auth为咱们提供了一下几种登录的认证的使用方法:
验证登录方法:Auth::attempt(['email' => $email, 'password' => $password])
登录方法:Auth::login()
退出登录方法:Auth::logout()
验证是否登录:@if (Auth::check()) 已登录 @endif
输出存储信息:Auth::user()
4.登录 退出 逻辑展示
登录
public function login(Request $request){
//正则验证
$credentials = $this->validate($request, [
'email' => 'required|email|max:255',
'password' => 'required'
]);
//验证登录
if (Auth::attempt($credentials,$request->has('remember'))) {
if(Auth::user()->activated=='1'){
session()->flash('success','欢迎回来!');
return redirect()->intended(route('users.show',[Auth::user()]));
}else{
Auth::logout();
return redirect('/');
}
} else {
// 登录失败后的相关操作
session()->flash('danger', '很抱歉,您的邮箱和密码不匹配');
return redirect()->back();
}
return;
}
退出
public function end()
{
Auth::logout();
session()->flash('success', '您已成功退出!');
return redirect('login');
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
谢谢大佬,解决了我的一些问题,谢谢