@@ -181,10 +181,24 @@ public function deleteExpired()
181
181
$ time = time ();
182
182
$ expiredSessions = DB ::table ('oauth_sessions ' )
183
183
->join ('oauth_session_access_tokens ' , 'oauth_session_access_tokens.session_id ' , '= ' , 'oauth_sessions.id ' )
184
- ->join ('oauth_session_refresh_tokens ' , 'oauth_session_refresh_tokens.session_access_token_id ' , '= ' , 'oauth_session_access_tokens.id ' )
185
- //->where('oauth_session_refresh_tokens.refresh_token_expires', '<', $time)
186
- //->where('oauth_session_access_tokens.access_token_expires', '<', $time)
184
+ ->leftJoin ('oauth_session_refresh_tokens ' , 'oauth_session_refresh_tokens.session_access_token_id ' , '= ' , 'oauth_session_access_tokens.id ' )
185
+ ->where ('oauth_session_refresh_tokens.refresh_token_expires ' , '< ' , $ time )
186
+ ->where (function ($ query ) use ($ time ) {
187
+ $ query ->where ('oauth_session_access_tokens.access_token_expires ' , '< ' , $ time )
188
+ ->orWhereRaw ('oauth_session_access_tokens.access_token_expires IS NULL ' );
189
+ })
187
190
->get ();
188
- var_dump ($ expiredSessions );
191
+ if (count ($ expiredSessions ) == 0 ) {
192
+ return 0 ;
193
+ }
194
+ else {
195
+ foreach ($ expiredSessions as $ session ) {
196
+ DB ::table ('oauth_sessions ' )
197
+ ->where ('id ' , '= ' , $ session ->id )
198
+ ->delete ();
199
+ }
200
+
201
+ return count ($ expiredSessions );
202
+ }
189
203
}
190
204
}
0 commit comments