0

こんにちは、私はそれを機能させることができません-他の中央Webサイトでログインを行っているため、ユーザーはWebサイトにリダイレクトされます-すべて問題ありません。通常のdb_providerとユーザーエンティティを使用してログインさせます-すべて正常に機能しますが、remember_me Cookieを取得できません仕事に。

手動ログインは次のように行われます

 $token = new UsernamePasswordToken($user, $user->getPassword(), "main", $user->getRoles());
 $this->get("security.token_storage")->setToken($token);

次に、これを試します

 $rememberMeService = new TokenBasedRememberMeServices(
        array($this->getDoctrine()->getManager()->getRepository('AppBundle:User')), $this->container->getParameter('secret'), 'main', array(
            'path' => '/',
            'name' => 'MyRememberMeCookie',
            'domain' => 'localhost',
            'lifetime' => 604800, // forever
            'always_remember_me' => true,
            'remember_me_parameter' => '_remember_me2')
    );

そしてこの後

$response = new Response();
    $rememberMeService->loginSuccess($request,$response,$token);

    $response->sendHeaders();

デバッグでは、クラス Cookie に移動し、新しい Cookie を設定していることがわかります。その Cookie はヘッダーのオブジェクト $response にありますが、ブラウザには送信されません。

これが security.yml の内容です

remember_me:
          secret: '%secret%'
          lifetime: 604800 # 1 week in seconds
          path: ~
          domain: ~
          name: MyRememberMeCookie
          always_remember_me : true
          remember_me_parameter: _remember_me2

どんなアイデアでもPLSヘルプ:)

4

0 に答える 0