laravel auth登录认证

注:前提,  账号和密码的字段名一定要用 usernamepassword 

0、修改配置,修改config下的auth.php

将‘model’ 修改为 对应的  user模型

 'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => \App\Model\User::class,
        ],

1、模型类继承auth的user

1.1引入并起别名

use Illuminate\Foundation\Auth\User as AuthUser; 

1.2继承AuthUser

class User extends AuthUser
{
    //守卫
    //拒绝添加的字段
    protected $guarded = [];
}

2、应用

2.1登录(attempt的使用)

        $post = $this->validate($request, [
            'username' => 'required',
            'password' => 'required',
        ], [
            'username.required' => '账号是必填的',
            'password.required' => '密码是必填的',
        ]);
        //如果登录成功
        if (auth()->attempt($post)) {
            return 'sss';
        }
        //登录失败
        return redirect(route('admin.login'))->withErrors(['error'=>'登录失败!']);

2.2退出

auth()->logout();

3、常用api

     //检查用户是否登录
        //登录则返回true,未登录返回false
        auth()->check();
        
        //未登录返回true(代表是游客),登录返回false
        auth()->guest();

        //获取用户的信息
        //如果用户没有登录,则返回空值  null
        auth()->user();
        auth()->id();

 

posted @ 2020-07-20 17:23  养猪至富  阅读(446)  评论(0编辑  收藏  举报