0

https://symfony.com/doc/master/session/proxy_examples.htmlの指示に従います。

Framework.yaml を更新します

framework:
    secret: '%env(APP_SECRET)%'
    #default_locale: en
    #csrf_protection: ~
    #http_method_override: true

# uncomment this entire section to enable sessions
session:
    # With this config, PHP's native session handling is used
    handler_id: App\Session\CookieEncryptedSession

#esi: ~
#fragments: ~
php_errors:
    log: true

また、独自のクラスを作成します。

<?php
namespace App\Session;

use Defuse\Crypto\Crypto;
use Defuse\Crypto\Key;
use Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy;

class CookieEncryptedSession extends SessionHandlerProxy
{
  private $key;

  public function __construct(\SessionHandlerInterface $handler, Key $key)
  {
    $this->key = $key;

    parent::__construct($handler);
  }

  public function read($id)
  {
    $data = parent::read($id);

    return Crypto::decrypt($data, $this->key);
  }

  public function write($id, $data)
  {
    $data = Crypto::encrypt($data, $this->key);

    return parent::write($id, $data);
  }
}

コンソールでサーバーを実行しようとすると、次のエラーが発生します。

In CheckCircularReferencesPass.php line 67:

  Circular reference detected for service "App\Session\CookieEncryptedSession  
  ", path: "App\Session\CookieEncryptedSession -> App\Session\CookieEncrypted  
  Session".     

間違いはどこにありますか?

ありがとう

オスカー

4

1 に答える 1