Merge pull request #2158 from CachetHQ/remember-me

Add remember me functionality to login
This commit is contained in:
James Brooks
2016-10-08 18:25:01 +01:00
committed by GitHub
3 changed files with 12 additions and 7 deletions

View File

@@ -19,7 +19,6 @@ use GrahamCampbell\Binput\Facades\Binput;
use Illuminate\Routing\Controller; use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\View; use Illuminate\Support\Facades\View;
use PragmaRX\Google2FA\Vendor\Laravel\Facade as Google2FA; use PragmaRX\Google2FA\Vendor\Laravel\Facade as Google2FA;
@@ -44,26 +43,25 @@ class AuthController extends Controller
*/ */
public function postLogin() public function postLogin()
{ {
$loginData = Binput::only(['username', 'password']); $loginData = Binput::only(['username', 'password', 'remember_me']);
// Login with username or email. // Login with username or email.
$loginKey = filter_var($loginData['username'], FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; $loginKey = filter_var($loginData['username'], FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
$loginData[$loginKey] = array_pull($loginData, 'username'); $loginData[$loginKey] = array_pull($loginData, 'username');
$rememberUser = array_pull($loginData, 'remember_me') === '1';
// Validate login credentials. // Validate login credentials.
if (Auth::validate($loginData)) { if (Auth::validate($loginData)) {
// Log the user in for one request.
Auth::once($loginData); Auth::once($loginData);
// Do we have Two Factor Auth enabled?
if (Auth::user()->hasTwoFactor) { if (Auth::user()->hasTwoFactor) {
// Temporarily store the user.
Session::put('2fa_id', Auth::user()->id); Session::put('2fa_id', Auth::user()->id);
return Redirect::route('auth.two-factor'); return Redirect::route('auth.two-factor');
} }
// We probably want to add support for "Remember me" here. Auth::attempt($loginData, $rememberUser);
Auth::attempt($loginData);
event(new UserLoggedInEvent(Auth::user())); event(new UserLoggedInEvent(Auth::user()));

View File

@@ -41,6 +41,7 @@ return [
'invalid-token' => 'Invalid token', 'invalid-token' => 'Invalid token',
'cookies' => 'You must enable cookies to login.', 'cookies' => 'You must enable cookies to login.',
'rate-limit' => 'Rate limit exceeded.', 'rate-limit' => 'Rate limit exceeded.',
'remember_me' => 'Remember me',
], ],
// Incidents form fields // Incidents form fields

View File

@@ -27,6 +27,12 @@
<label class="sr-only">{{ trans('forms.login.password') }}</label> <label class="sr-only">{{ trans('forms.login.password') }}</label>
<input autocomplete="off" class="form-control login-input" placeholder="{{ trans('forms.login.password') }}" required="required" name="password" type="password" value=""> <input autocomplete="off" class="form-control login-input" placeholder="{{ trans('forms.login.password') }}" required="required" name="password" type="password" value="">
</div> </div>
<div class="checkbox">
<input type="hidden" name="remember_me" value="0">
<label>
<input name="remember_me" type="checkbox" value="1"> {{ trans('forms.login.remember_me') }}
</label>
</div>
<div class="form-group"> <div class="form-group">
<div class="row"> <div class="row">
<div class="col-xs-2"> <div class="col-xs-2">