Skip to content

Commit 3d0d45c

Browse files
authored
Merge pull request barryvdh#949 from barryvdh/feat-multiauth
Use correct Provider in MultiAuth
2 parents 66f39be + dbf6053 commit 3d0d45c

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

src/DataCollector/MultiAuthCollector.php

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use DebugBar\DataCollector\DataCollector;
66
use DebugBar\DataCollector\Renderable;
7+
use Illuminate\Auth\Recaller;
78
use Illuminate\Auth\SessionGuard;
89
use Illuminate\Contracts\Auth\Authenticatable;
910
use Illuminate\Contracts\Auth\Guard;
@@ -21,6 +22,7 @@ class MultiAuthCollector extends DataCollector implements Renderable
2122

2223
/** @var \Illuminate\Auth\AuthManager */
2324
protected $auth;
25+
2426
/** @var bool */
2527
protected $showName = false;
2628

@@ -51,9 +53,9 @@ public function collect()
5153
$data = [];
5254
$names = '';
5355

54-
foreach($this->guards as $guardName) {
56+
foreach($this->guards as $guardName => $config) {
5557
try {
56-
$user = $this->resolveUser($this->auth->guard($guardName));
58+
$user = $this->resolveUser($this->auth->guard($guardName), $config);
5759
} catch (\Exception $e) {
5860
continue;
5961
}
@@ -76,19 +78,23 @@ public function collect()
7678
return $data;
7779
}
7880

79-
private function resolveUser(Guard $guard)
81+
private function resolveUser(Guard $guard, array $config)
8082
{
8183
// if we're logging in using remember token
8284
// then we must resolve user „manually”
8385
// to prevent csrf token regeneration
84-
85-
$recaller = $guard instanceof SessionGuard
86-
? new Recaller($guard->getRequest()->cookies->get($guard->getRecallerName()))
87-
: null;
88-
89-
return !is_null($recaller) && !is_null($user = $this->provider->retrieveByToken(
90-
$recaller->id(), $recaller->token()
91-
)) ? $user : $guard->user();
86+
if ($guard instanceof SessionGuard) {
87+
88+
$recaller = new Recaller($guard->getRequest()->cookies->get($guard->getRecallerName()));
89+
$provider = $this->auth->createUserProvider($config['provider']);
90+
91+
$user = $provider->retrieveByToken($recaller->id(), $recaller->token());
92+
if ($user) {
93+
return $user;
94+
}
95+
}
96+
97+
return $guard->user();
9298
}
9399

94100
/**

src/LaravelDebugbar.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ function ($query, $bindings = null, $time = null, $connectionName = null) use ($
451451

452452
if ($this->shouldCollect('auth', false)) {
453453
try {
454-
$guards = array_keys($this->app['config']->get('auth.guards', []));
454+
$guards = $this->app['config']->get('auth.guards', []);
455455
$authCollector = new MultiAuthCollector($app['auth'], $guards);
456456

457457
$authCollector->setShowName(

0 commit comments

Comments
 (0)