繁体   English   中英

Symfony通过远程API对用户进行身份验证

[英]Symfony authenticate user against remote API

我有一个问题,或多或少与此人相同: Symfony 3根据远程API对用户进行身份验证

但是我的问题是,我该如何处理令牌?

我使用过警卫,我做了一个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']

他的意思不清楚,但是我认为最好的解决方案是将其存储在会话变量中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM