我使用Symfony2与API通信然后启动会话。我让OauthCallbackController.php
完成授权过程,然后启动会话并设置一些变量。然后,我希望能够从其他控制器访问这些变量,以确保我有权访问API。
我在Symfony2会话中已经阅读了很多不同(且令人困惑)的方法,现在我在下面使用:
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\RedirectResponse;
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");
}
}
这就是我认为启动会话的方式,但我无法弄清楚如何在其他控制器中使用/访问此会话。因此,如果有人可以帮助我,或者如果我错误地创建了会话,请提供反馈。
答案 0 :(得分:1)
您不需要自己开始会话(Symfony会为您做这件事),也不需要创建自己的Session
对象。
在您的控制器中,您可以从Request
对象获取Symfony提供的会话对象。
$session = $request->getSession();
这就是全部。您可以阅读有关它的文档here。