laravel记住登录、设置时间

laravel 自动登陆的时间改如何实现?

控制器

public function login()
{
$email =Input::get('email');
$password  = Input::get('password');
$remember   =   Input::get('remember');
// lets validate the users input
$validator = Validator::make(
array(
'email' =>$email,
'password' =>$password
),
array(
'email'  => 'required|email',
'password'  => 'required'
)
);


if ($validator->fails()){
   return Redirect::back()->withErrors($validator)->withInput();
}else{
if( Auth::attempt(array('email' => $email, 'password' => $password),$remember) ){
return Redirect::to('hud');
}else{  
$validator->getMessageBag()->add('input', 'Incorrect email or password');
return Redirect::back()->withErrors($validator)->withInput();;
}
}
}

view层

@extends('templates.outs.auth')

@section('content')

  <div class="special-form">
      <a href="{{ route('home') }}"><img src="{{ AppHelpersHelpers::logoUrl()  }}" alt=""></a>
      <h3 class="text-center">LOGIN</h3>
      @if ($errors->first())
          <span class="status-msg error-msg">{{ $errors->first() }}</span>
      @endif
      <hr>
    {!! Form::open(array('action' => 'UsersController@login')) !!}
        <div class="form-group">
            <label for="email" class="color-primary">Email:</label>
            {!! Form::text( 'email', null, array('class' => 'form-control', "placeholder" => "Email","autofocus" => "true" )) !!}
        </div>
        <div class="form-group">
            <label for="password" class="color-primary">Password:</label>
            {!! Form::password( 'password', array('class' => 'form-control', "placeholder" => "Password" )) !!}
        </div>
        <div class="form-group">
            <label for="remember" class="color-primary">Remember:</label>
            <input type="checkbox" name="remember" value="remember me">
        </div>
        <div class="form-group">
            {!! Form::submit( 'Login', array('class' => 'btn btn-primary btn-wide')) !!}
        </div>
    {!! Form::close() !!}
    <p>Don't have an account? <a href="{{ route('register') }}">register</a></p>
  </div>


@stop

路由

Route::get('login', function(){ return View::make('login')->with('pTitle', "Login"); })->name('login');

底层实现

public function login(UserContract $user, $remember = false)
    {
        $this->updateSession($user->getAuthIdentifier());


        // If the user should be permanently "remembered" by the application we will
        // queue a permanent cookie that contains the encrypted copy of the user
        // identifier. We will then decrypt this later to retrieve the users.
        if ($remember) {
            $this->createRememberTokenIfDoesntExist($user);


            $this->queueRecallerCookie($user);
        }


        // If we have an event dispatcher instance set we will fire an event so that
        // any listeners will hook into the authentication events and run actions
        // based on the login and logout events fired from the guard instances.
        $this->fireLoginEvent($user, $remember);


        $this->setUser($user);
    }

比如我现在要设置30天都是可以自动登陆的,

前端设置一个name="remember"的checkbox

然后后台在attempt添加一个$remember对象、你只需接收checkbox的值是否为true就行了,因为默认$remember=false

'lifetime' => 43200,
'expire_on_close' => false,
原文地址:https://www.cnblogs.com/wntd/p/8993737.html