コード例 #1
0
 /**
  * @param Request $request
  * @return Response
  */
 public function callbackAction(Request $request)
 {
     $requestToken = $request->getSession()->get(self::SESSION_REQUEST_TOKEN);
     $request->getSession()->remove(self::SESSION_REQUEST_TOKEN);
     $oauth_token = $request->get('oauth_token');
     $oauth_verifier = $request->get('oauth_verifier');
     $this->validateCallbackTokens($requestToken, $oauth_token, $oauth_verifier);
     $accessToken = $this->twitter->getAccessToken($requestToken, $oauth_verifier);
     $request->getSession()->set(self::SESSION_ACCESS_TOKEN, $accessToken);
     $response = new RedirectResponse($request->getSession()->get(self::SESSION_FORWARD_URI));
     $request->getSession()->remove(self::SESSION_FORWARD_URI);
     return $response;
 }
コード例 #2
0
 public function testRegularCallbackFlow()
 {
     $requestToken = array('oauth_token' => 'foo', 'oauth_token_secret' => 'bar');
     $this->session->set('rabus_twitter_request_token', $requestToken);
     $this->session->set('rabus_twitter_forward_uri', '/foobar');
     $this->twitterMock->expects($this->once())->method('getAccessToken')->with($requestToken, 'barfoo')->will($this->returnValue(array('bar' => 'foo')));
     $request = Request::create('http://localhost/callback', 'GET', array('oauth_token' => 'foo', 'oauth_verifier' => 'barfoo'));
     $request->setSession($this->session);
     $response = $this->controller->callbackAction($request);
     $this->assertEquals(302, $response->getStatusCode());
     $this->assertTrue($response->isRedirect('/foobar'));
     $this->assertEquals(array('bar' => 'foo'), $this->session->get('rabus_twitter_access_token'));
     $this->assertNull($this->session->get('rabus_twitter_request_token'));
     $this->assertNull($this->session->get('rabus_twitter_forward_uri'));
 }