TL; DR вопрос: Как сделать пользователя онлайн сразу после регистрации и отметить, что его учетные данные истекли, чтобы он мог предоставить пароль при следующем входе в систему?
Я создаю систему регистрации с наименьшими хлопотами на моем сайте Symfony2 (2.7):
Это ключевой момент всей идеи: если пользователь может предоставить оригинальный пароль, который он ранее не знал и который был отправлен на его электронную почту, мы можем быть уверены, что у него есть доступ к указанному адресу электронной почты.
Так что моя проблема в том, что я хочу подключить пользователя к сети сразу после регистрации, и мне нужно установить срок действия его учетных данных, чтобы он либо вводил временный пароль во время первого сеанса, либо был вынужден ввести его при попытке войти во второй раз.
Дело в том, что если я установлю учетные данные как истекшие до входа в систему, это, конечно, не удастся. Поэтому я хотел установить учетные данные как истекшие сразу после того, как я установил UsernamePasswordToken в security.token_storage, но он тоже не удался. Есть идеи, что я делаю не так?
В результате я установил срок действия учетных данных, срок действия которых истек, на странице «Спасибо», которая работает, но на самом деле не является хорошим решением.
AccountController со всеми необходимыми действиями: http://pastebin.com/GZspAzMr
Я застрял в бесконечном цикле, пытаясь вывести меня на экран входа в систему, и журнал заполняется
[2015-09-11 09:28:14] security.INFO: An AuthenticationException was thrown; redirecting to authentication entry point. {"exception":"[object] (Symfony\\Component\\Security\\Core\\Exception\\ProviderNotFoundException(code: 0): No Authentication Provider found for token of class \"Symfony\\Component\\Security\\Core\\Authentication\\Token\\UsernamePasswordToken\". at /var/www/project/app/cache/dev/classes.php:2679)"} []
Мои настройки безопасности разрешают неограниченный доступ к контроллеру учетной записи: http://pastebin.com/7GAV4TGc
Задача ещё не решена.
Других решений пока нет …