From 4d11ab5c3ff566698a056c7d9359407c4ef5f1ed Mon Sep 17 00:00:00 2001 From: srmklive Date: Sat, 30 Jul 2016 20:42:56 +0500 Subject: [PATCH] Fix empty api key authentication error. --- src/Illuminate/Auth/TokenGuard.php | 4 ++++ tests/Auth/AuthTokenGuardTest.php | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/Illuminate/Auth/TokenGuard.php b/src/Illuminate/Auth/TokenGuard.php index e9d3602fca5..2a33ab0e61f 100644 --- a/src/Illuminate/Auth/TokenGuard.php +++ b/src/Illuminate/Auth/TokenGuard.php @@ -101,6 +101,10 @@ protected function getTokenForRequest() */ public function validate(array $credentials = []) { + if (empty($credentials[$this->inputKey])) { + return false; + } + $credentials = [$this->storageKey => $credentials[$this->inputKey]]; if ($this->provider->retrieveByCredentials($credentials)) { diff --git a/tests/Auth/AuthTokenGuardTest.php b/tests/Auth/AuthTokenGuardTest.php index e820667f16a..2f192f0cfd6 100644 --- a/tests/Auth/AuthTokenGuardTest.php +++ b/tests/Auth/AuthTokenGuardTest.php @@ -80,6 +80,18 @@ public function testValidateCanDetermineIfCredentialsAreInvalid() $this->assertFalse($guard->validate(['api_token' => 'foo'])); } + + public function testValidateIfApiTokenIsEmpty() + { + $provider = Mockery::mock(UserProvider::class); + $user = new AuthTokenGuardTestUser; + $user->id = 1; + $request = Request::create('/', 'GET', ['api_token' => '']); + + $guard = new TokenGuard($provider, $request); + + $this->assertFalse($guard->validate(['api_token' => ''])); + } } class AuthTokenGuardTestUser