Создайте файл cookie «Запомнить меня» для Symfony2 вручную (FOSUserBundle)Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Создайте файл cookie «Запомнить меня» для Symfony2 вручную (FOSUserBundle)

Сообщение Anonymous »

Может ли кто-нибудь объяснить, как вручную создать файл cookie «Запомнить меня» в контроллере?

Я хочу, чтобы пользователи оставались в системе после того, как они нажали «зарегистрироваться», без необходимости последующего входа в систему с использованием своих учетных данных.

Я пытался создать файл cookie вручную, но я предполагаю, что
значение файла cookie неверно, и поэтому функция «запомнить меня»
не работает.
Устанавливается файл cookie с правильным именем. Я это проверил.

Функция «Запомнить меня» работает должным образом при использовании обычной
процедуры входа в систему с учетными данными пользователя.

security.yml
security.yml запомнить меня

security:
firewalls:
main:
remember_me:
lifetime: 86400
domain: ~
path: /
key: myKey


Это то, что у меня есть сейчас, хотя файл cookie установлен, он не работает.

$um = $this->get('fos_user.user_manager');
$member = $um->createUser();

… Form stuff with bindRequest etc.

$um->updatePassword($member);
$um->updateUser($member);

$providerKey = $this->container->getParameter('fos_user.firewall_name');
$securityKey = 'myKey';

$token = new RememberMeToken($member, $providerKey, $securityKey,
$member->getRoles());
$this->container->get('security.context')->setToken($token);

$redirectResponse = new RedirectResponse($url);
$redirectResponse->headers->setCookie(
new \Symfony\Component\HttpFoundation\Cookie(
'REMEMBERME',
base64_encode(implode(':', array($member->getUsername(),
$member->getPassword()))),
time() + 60*60*24
)
);
return $redirectResponse;


Обновление:

Я также пробовал работать с
Класс PersistentTokenBasedRememberMeServices с отражением, но он не работает. файл cookie устанавливается, но не работает

$token = $this->container->get('security.context')->getToken();

$providerKey = $this->container->getParameter('fos_user.firewall_name');
$securityKey = 'myKey';

$persistenService = new
PersistentTokenBasedRememberMeServices(array($um), $providerKey,
$securityKey, array('path' => '/', 'name' => 'REMEMBERME', 'domain' =>
null, 'secure' => false, 'httponly' => true,
'lifetime' => 86400));
$persistenService->setTokenProvider(new InMemoryTokenProvider());

$method = new \ReflectionMethod('Symfony\Component\Security\Http\RememberMe\PersistentTokenBasedRememberMeServices',
'onLoginSuccess');
$method->setAccessible(true);
$method->invoke($persistenService, $request, $redirectResponse, $token);


Я использую Symfony v2.0.5 и FOSUserBundle 1.0

ОБНОВЛЕНИЕ 2:

Я попробовал третий способ. То же, что и выше, но без отражения:

$token = $this->container->get('security.context')->getToken();

$providerKey = $this->container->getParameter('fos_user.firewall_name');
$securityKey = 'myKey';

$persistenService = new PersistentTokenBasedRememberMeServices(array($um), $providerKey, $securityKey, array('path' => '/', 'name' => 'REMEMBERME', 'domain' => null, 'secure' => false, 'httponly' => true, 'lifetime' => 31536000, 'always_remember_me' => true, 'remember_me_parameter' => '_remember_me'));
$persistenService->setTokenProvider(new InMemoryTokenProvider());

$persistenService->loginSuccess($request, $redirectResponse, $token);


Подробнее здесь: https://stackoverflow.com/questions/896 ... userbundle
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Cookie Cookie Cookie Cookie Core Identity ASP.NET хранится, но не разрешается - Blazor Web App
    Гость » » в форуме C#
    0 Ответы
    46 Просмотры
    Последнее сообщение Гость
  • APC не сохраняет свойства в расширенном классе fosuserbundle
    Anonymous » » в форуме Php
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как использовать Recaptcha на странице входа в систему Fosuserbundle
    Anonymous » » в форуме Php
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как сохранить идентификатор просмотренного фильма в cookie. Один файл cookie против нескольких файлов cookie
    Anonymous » » в форуме Php
    0 Ответы
    62 Просмотры
    Последнее сообщение Anonymous
  • Как получить файл cookie из ответа на Scrapy и установить файл cookie для следующего запроса?
    Anonymous » » в форуме Python
    0 Ответы
    43 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»