Symfony 根据远程 API 对用户进行身份验证
Symfony authenticate user against remote API
我有一个问题,和这个人差不多:
但我的问题是,我该如何处理令牌?
我使用了 guard,我做了一个 api 服务,我可以在其中检索令牌,但我可以在哪里存储它?我想设置一个 cookie,但我不能从我的服务中写入 cookie,否则我将无法启动会话,所以在答案中我不明白:"store token in your frontend storage".
我真的没有办法把token存到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']
我有一个问题,和这个人差不多:
但我的问题是,我该如何处理令牌?
我使用了 guard,我做了一个 api 服务,我可以在其中检索令牌,但我可以在哪里存储它?我想设置一个 cookie,但我不能从我的服务中写入 cookie,否则我将无法启动会话,所以在答案中我不明白:"store token in your frontend storage".
我真的没有办法把token存到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']