@kapai69

Symfony2 программная авторизация и запомнить меня?

При программной авторизации в симфони
$token = new UsernamePasswordToken($user, null, 'secured_area', array('ROLE_USER'));
$this->get('security.context')->setToken($token);

Как постивить юзеру куки remember me?
  • Вопрос задан
  • 2574 просмотра
Пригласить эксперта
Ответы на вопрос 2
@shoomyst
dumb
Вероятно это будет непросто. Я бы смотрел куда-то в сторону этого:
\Symfony\Component\Security\Http\RememberMe\PersistentTokenBasedRememberMeServices
Ответ написан
Комментировать
benbor
@benbor
Помог ответ - не забудь лайкнуть
Если вы хотите поставить куку, скорее всего вы будете хотеть ее и читать, для каждого запроса - вам поможет symfony2 docs например тут или тут
но все это геморно, может проще реализации из каробки?
вот так
UPD:
Если вы явно хотите, "как в симфони" то очевидно, нужно найти "как в симфони" - https://github.com/symfony/Security/blob/master/Ht...
$series = base64_encode($this->secureRandom->nextBytes(64));
        $tokenValue = base64_encode($this->secureRandom->nextBytes(64));
        $this->tokenProvider->createNewToken(
            new PersistentToken(
                get_class($user = $token->getUser()),
                $user->getUsername(),
                $series,
                $tokenValue,
                new \DateTime()
            )
        );
        $response->headers->setCookie(
            new Cookie(
                $this->options['name'],
                $this->encodeCookie(array($series, $tokenValue)),
                time() + $this->options['lifetime'],
                $this->options['path'],
                $this->options['domain'],
                $this->options['secure'],
                $this->options['httponly']
            )
        );

либо еще там же поищите. Найдите именно то, что у Вас уже подключено, и вызывайте
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы