public function check()
	{
		if (isset($this->check)) {
			return $this->check;
		}
		
		try {
			Authorizer::validateAccessToken();
			$this->type = 'user';
			return $this->check = true;
		} catch (Exception $e) {}
		
		$client_id     = Request::input('client_id');
		$client_secret = Request::input('client_secret');
		if (!$client_id || !$client_secret) {
			return $this->check = false;
		}
		
		$client = $this->fetchClient($client_id, $client_secret);
		if (!$client) {
			return $this->check = false;
		}
		
		if (!in_array('client_id_secret', $client->grants())) {
			return $this->check = false;
		}
		
		$this->client = $client;
		$this->type = 'client';
		return $this->check = true;
	}