有没有办法可以从控制器设置令牌参数?
app.oauth_subscriber:
class: GuzzleHttp\Subscriber\Oauth\Oauth1
arguments:
- consumer_key: 'test'
private_key_file: '../app/config/test.pem'
private_key_passphrase: null
signature_method: !php/const:GuzzleHttp\Subscriber\Oauth\Oauth1::SIGNATURE_METHOD_RSA
token: "@=service('security.token_storage').getToken().getUser().getToken().getAccessToken()"
我可以得到这样的服务:
$this->container->get('app.oauth_subscriber');
答案 0 :(得分:0)
我不确定您是否可以使用服务工厂来执行此操作但是如果您不需要令牌作为__construct,则可以将其从服务参数中删除并在服务中声明新方法,如setToken()
和控制器用它来设置令牌。
// Service
private $token;
public function setToken($token){
$this->token = $token;
}
并在您的服务中使用$this->token
以便使用它。
// Controller
$myService = $this->container->get('app.oauth_subscriber');
$myService->setToken('token');
这只是一个答案。任何更好的解决方案都可以存在。