Beispiel #1
0
 /**
  * Application constructor.
  *
  * @param array $config
  */
 public function __construct($config)
 {
     parent::__construct();
     $this['config'] = function () use($config) {
         return new Config($config);
     };
     if ($this['config']['debug']) {
         error_reporting(E_ALL);
     }
     $this->registerProviders();
     $this->registerBase();
     $this->initializeLogger();
     $this->registerExceptionHandler();
     Log::info('Current configuration:', $config);
 }
 /**
  * Registers services on the given container.
  *
  * This method should only be used to configure services and parameters.
  * It should not get services.
  *
  * @param Container $pimple A container instance
  */
 public function register(Container $pimple)
 {
     $pimple['encryptor'] = function ($pimple) {
         return new Encryptor($pimple['config']['component_app_id'], $pimple['config']['component_token'], $pimple['config']['component_aes_key']);
     };
     $pimple['component'] = function ($pimple) {
         return new Component($pimple['config']['component_app_id'], $pimple['config']['component_app_secret'], $pimple['cache']);
     };
     $pimple['auth_server'] = function ($pimple) {
         $server = new AuthGuard($pimple['config']['component_token']);
         $server->debug($pimple['config']['debug']);
         $server->setEncryptor($pimple['encryptor']);
         //处理verifyTicket
         $server->setVerifyTicketHandler(function ($message) use($pimple) {
             Log::info('接收到ticket事件' . $message);
             $componentVerifyTicket = new ComponentVerifyTicket($pimple['cache']);
             $componentVerifyTicket->setComponentVerifyTicket($message->ComponentVerifyTicket);
         });
         return $server;
     };
 }
Beispiel #3
0
 /**
  * Build response.
  *
  * @param mixed $message
  *
  * @return string
  */
 protected function buildResponse($to, $from, $message)
 {
     if (empty($message) || $message === self::SUCCESS_EMPTY_RESPONSE) {
         return self::SUCCESS_EMPTY_RESPONSE;
     }
     if ($message instanceof RawMessage) {
         return $message->get('content', self::SUCCESS_EMPTY_RESPONSE);
     }
     if (is_string($message)) {
         $message = new Text(['content' => $message]);
     }
     if ($this->isMessage($message)) {
         $response = $this->buildReply($to, $from, $message);
         if ($this->isSafeMode()) {
             Log::info('Message safe mode is enable.');
             $response = $this->encryptor->encryptMsg($response, $this->request->get('nonce'), $this->request->get('timestamp'));
         }
     }
     return $response;
 }