我正在使用Symfony2与API通信,然后启动会话。我有我的OauthCallbackController.php
完成授权过程,然后启动会话并设置一些变量。然后,我希望能够从其他控制器访问这些变量,以确保我能够正确访问 API。
我在Symfony2会话中读到了很多不同(和令人困惑)的方式,现在我在下面使用:
use SymfonyComponentHttpFoundationSessionSession;
use SymfonyComponentHttpFoundationRedirectResponse;
class OauthCallbackController extends Controller
{
public function callbackAction(Request $request)
{
$session = new Session();
$session->start();
// Oauth Code here
$json_response = curl_exec($curl);
$response = json_decode($json_response, true);
$access_token = $response['access_token'];
$instance_url = $response['instance_url'];
$session->set('access_token', $access_token);
$session->set('instance_url', $instance_url);
return new RedirectResponse("rootpage.com");
}
}
这就是我对启动会话的看法,但我无法弄清楚如何在其他控制器中使用/访问此会话。因此,如果有人可以帮助我,或者如果我的会话创建错误,请提供反馈。
你不需要自己启动一个会话(Symfony为你做),也不需要创建自己的Session
对象。
在你的控制器中,你可以从Request
对象获取Symfony提供的会话对象。
$session = $request->getSession();
就这样。您可以在此处阅读有关它的文档。