Auth认证

  • 登录

    //需要使用两个类
    //use IlluminateSupportFacadesAuth;
    //use IlluminateSupportFacadesRedirect;
    //登录行为
        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' => AppUser::class,
/*如果我们的用户表的model,并且我们用户标的model要继承该类
例如  use IlluminateFoundationAuthUser as Authenticatable;
class User extends Authenticatable*/
        ],

         /*'users' => [
             'driver' => 'database',
             'table' => 'users',//这就是我们的用户表名,这一种和上一种使用一个就行
         ],*/
    ],

    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],

];
原文地址:https://www.cnblogs.com/hanmengya/p/10870953.html