У меня есть проблема, более или менее такая же, как этот парень: Symfony 3 аутентифицирует пользователя по удаленному API
Но моя проблема в том, что мне делать с токеном?
Я использовал Guard, я сделал API-сервис, где я могу получить токен, но где я могу его сохранить? Я хотел установить cookie, но не могу записать cookie из своего сервиса, или я не смогу начать сеанс, поэтому в ответе я не понимаю: «хранить токен в вашем внешнем хранилище».
Неужели я не могу сохранить токен в cookie?
Спасибо!
Не очень понятно, что он имел в виду, но я думаю, что лучшее решение — сохранить его в переменной сессии.
Почему не должно быть возможности не использовать сеансы из служб? Добавьте компонент сеанса в свой сервис, и все готово.
class TheService {
public function __construct(SessionInterface $session) {
$this->session = $session;
}
public function stuff() {
$this->session->set('my_token', 'h3ll0');
}
}
Увидеть http://symfony.com/doc/current/components/http_foundation/sessions.html
В случае, если вы используете текущую версию Symfony, его функция автоматической проводки позаботится о введении session
сервис, в противном случае вам нужно будет настроить сервис в вашем services.yml
:
services:
my_service:
class: AppBundle\Service\TheService
public: true
arguments: ['@session']