44
55use Illuminate \Contracts \Hashing \Hasher ;
66use Illuminate \Foundation \Auth \User as Authenticatable ;
7+ use Illuminate \Support \Facades \DB ;
78use Laravel \Passport \Client ;
89use Laravel \Passport \Database \Factories \ClientFactory ;
910use Laravel \Passport \HasApiTokens ;
@@ -53,7 +54,7 @@ public function testIssueTokenWithDifferentProviders()
5354 config ([
5455 'auth.providers.admins ' => ['driver ' => 'eloquent ' , 'model ' => AdminProviderStub::class],
5556 'auth.guards.api-admins ' => ['driver ' => 'passport ' , 'provider ' => 'admins ' ],
56- 'auth.providers.customers ' => ['driver ' => 'database ' , 'table ' => ' customer_provider_stubs ' ],
57+ 'auth.providers.customers ' => ['driver ' => 'eloquent ' , 'model ' => CustomerProviderStub::class ],
5758 'auth.guards.api-customers ' => ['driver ' => 'passport ' , 'provider ' => 'customers ' ],
5859 'passport.personal_access_client ' => ['id ' => $ client ->getKey (), 'secret ' => $ client ->plainSecret ],
5960 'passport.personal_access_client.admins ' => ['id ' => $ adminClient ->getKey (), 'secret ' => $ adminClient ->plainSecret ],
@@ -80,25 +81,34 @@ public function testIssueTokenWithDifferentProviders()
8081 $ this ->assertInstanceOf (PersonalAccessTokenResult::class, $ customerToken );
8182 $ this ->assertSame ($ customerClient ->getKey (), $ customerToken ->token ->client_id );
8283 $ this ->assertSame ($ customer ->getAuthIdentifier (), $ customerToken ->token ->user_id );
84+
85+ DB ::enableQueryLog ();
86+ $ userTokens = $ user ->tokens ()->pluck ('id ' )->all ();
87+ $ adminTokens = $ admin ->tokens ()->pluck ('id ' )->all ();
88+ $ customerTokens = $ customer ->tokens ()->pluck ('id ' )->all ();
89+ DB ::disableQueryLog ();
90+
91+ $ queries = DB ::getRawQueryLog ();
92+ $ this ->assertStringContainsString ('and ("provider" is null or "provider" = \'users \') ' , $ queries [0 ]['raw_query ' ]);
93+ $ this ->assertStringContainsString ('and ("provider" = \'admins \') ' , $ queries [1 ]['raw_query ' ]);
94+ $ this ->assertStringContainsString ('and ("provider" = \'customers \') ' , $ queries [2 ]['raw_query ' ]);
95+
96+ $ this ->assertEquals ([$ userToken ->token ->id ], $ userTokens );
97+ $ this ->assertEquals ([$ adminToken ->token ->id ], $ adminTokens );
98+ $ this ->assertEquals ([$ customerToken ->token ->id ], $ customerTokens );
8399 }
84100}
85101
86102class AdminProviderStub extends Authenticatable
87103{
88104 use HasApiTokens;
89105
90- public function getAuthIdentifier ()
91- {
92- return 'foo ' ;
93- }
106+ protected $ attributes = ['id ' => 1 ];
94107}
95108
96109class CustomerProviderStub extends Authenticatable
97110{
98111 use HasApiTokens;
99112
100- public function getAuthIdentifier ()
101- {
102- return 3 ;
103- }
113+ protected $ attributes = ['id ' => 3 ];
104114}
0 commit comments