Mar*_*rkS 0 symfony fosoauthserverbundle
使用FOSOAuthServerBundle的标准端点(使用FOSUserBundle),我可以通过提供client_id,client_secret,用户和密码组合来检索访问和刷新令牌.响应如下:
{
"accessToken": "YTg2ZTJkNTY2MGM5MGQyNzZjYjkyZWMwYzg1YTZmZTZmOTIyMzAxNDY2MTkwZDU5ODYzZTAzYmIyNDI0YTQ4ZQ",
"expiresIn": 3600,
"tokenType": "bearer",
"refreshToken": "OTU1MGZhNDQ2ODFkZDUzMmQ4Y2FhNTk5OWM0NWFlNDk0YTY0ZDZhOTRjZTUwM2JlYTE3MDkxYzU3ZWY1OGRkYQ"
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何通过传递客户端和用户凭据以编程方式检索类似的数据?即如何从我的应用程序的另一部分进行相同的调用而不通过HTTP(慢),而是直接通过捆绑代码(快速)?
我确信必须有一个简单的方法来做到这一点,但到目前为止我能找到的最好的是这个https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/issues/347并没有真正实现与HTTP调用.
以下是使用请求对象直接从fos_oauth_server.server服务获取相同响应的方法:
$grantRequest = new Request(array(
'client_id' => $clientId,
'client_secret' => $clientSecret,
'grant_type' => 'password',
'username' => $username,
'password' => $password
));
$tokenResponse = $this->get('fos_oauth_server.server')->grantAccessToken($grantRequest);
$token = $tokenResponse->getContent();
Run Code Online (Sandbox Code Playgroud)