4
4
5
5
use DebugBar \DataCollector \DataCollector ;
6
6
use DebugBar \DataCollector \Renderable ;
7
+ use Illuminate \Auth \Recaller ;
7
8
use Illuminate \Auth \SessionGuard ;
8
9
use Illuminate \Contracts \Auth \Authenticatable ;
9
10
use Illuminate \Contracts \Auth \Guard ;
@@ -21,6 +22,7 @@ class MultiAuthCollector extends DataCollector implements Renderable
21
22
22
23
/** @var \Illuminate\Auth\AuthManager */
23
24
protected $ auth ;
25
+
24
26
/** @var bool */
25
27
protected $ showName = false ;
26
28
@@ -51,9 +53,9 @@ public function collect()
51
53
$ data = [];
52
54
$ names = '' ;
53
55
54
- foreach ($ this ->guards as $ guardName ) {
56
+ foreach ($ this ->guards as $ guardName => $ config ) {
55
57
try {
56
- $ user = $ this ->resolveUser ($ this ->auth ->guard ($ guardName ));
58
+ $ user = $ this ->resolveUser ($ this ->auth ->guard ($ guardName ), $ config );
57
59
} catch (\Exception $ e ) {
58
60
continue ;
59
61
}
@@ -76,19 +78,23 @@ public function collect()
76
78
return $ data ;
77
79
}
78
80
79
- private function resolveUser (Guard $ guard )
81
+ private function resolveUser (Guard $ guard, array $ config )
80
82
{
81
83
// if we're logging in using remember token
82
84
// then we must resolve user „manually”
83
85
// 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 ();
92
98
}
93
99
94
100
/**
0 commit comments