belongsTo('Models\OAuth2\RefreshToken'); } /** * @return RefreshToken */ public function getRefreshToken(){ return Cache::remember ( 'refresh_token_'.$this->refresh_token_id, Config::get("cache_regions.region_refresh_token_lifetime", 1140), function() { return $this->refresh_token()->first(); } ); } public function client(){ return $this->belongsTo('Models\OAuth2\Client'); } /** * @return IClient */ public function getClient(){ return Cache::remember ( 'client_'.$this->client_id, Config::get("cache_regions.region_clients_lifetime", 1140), function() { return $this->client()->first(); } ); } public function user(){ return $this->belongsTo('Auth\User'); } /** * @return User */ public function getUser(){ return Cache::remember ( 'user_'.$this->user_id, Config::get("cache_regions.region_users_lifetime", 1140), function() { return $this->user()->first(); } ); } /** * @return bool */ public function isVoid(){ //check lifetime... $created_at = $this->created_at; $created_at->add(new DateInterval('PT' . intval($this->lifetime) . 'S')); $now = new DateTime(gmdate("Y-m-d H:i:s", time()), new DateTimeZone("UTC")); return ($now > $created_at); } /** * @return mixed */ public function getFriendlyScopes(){ return $this->friendly_scopes; } /** * @param $friendly_scopes */ public function setFriendlyScopes($friendly_scopes){ $this->friendly_scopes = $friendly_scopes; } /** * @return int */ public function getRemainingLifetime() { //check is refresh token is stills alive... (ZERO is infinite lifetime) if (intval($this->lifetime) == 0) return 0; $created_at = new DateTime($this->created_at, new DateTimeZone("UTC")); $created_at->add(new DateInterval('PT' . intval($this->lifetime) . 'S')); $now = new DateTime(gmdate("Y-m-d H:i:s", time()), new DateTimeZone("UTC")); //check validity... if ($now > $created_at) return -1; $seconds = abs($created_at->getTimestamp() - $now->getTimestamp());; return $seconds; } }