/** * Creates a RedirectResponse that will send the user to the * OAuth2 server (e.g. send them to Facebook). * * @param array $scopes The scopes you want (leave empty to use default) * @return RedirectResponse */ public function redirect(array $scopes = []) { $options = []; if (!empty($scopes)) { $options['scope'] = $scopes; } $url = $this->provider->getAuthorizationUrl($options); // set the state (unless we're stateless) if (!$this->isStateless) { $this->getSession()->set(self::OAUTH2_SESSION_STATE_KEY, $this->provider->getState()); } return new RedirectResponse($url); }
private function moveToAuth(AbstractProvider $provider) { $authorizationUrl = $provider->getAuthorizationUrl(); $_SESSION['oauth2state'] = $provider->getState(); header('Location: ' . $authorizationUrl); exit; }
public function getAuthorizationUrl($options = []) { $url = parent::getAuthorizationUrl($options); if ($this->testMode) { $url .= '&sandbox=true'; } return $url; }
public function getAuthorizationUrl($options = array()) { $url = parent::getAuthorizationUrl($options); if (!empty($this->hostedDomain)) { $url .= '&' . $this->httpBuildQuery(['hd' => $this->hostedDomain]); } return $url; }
public function getAuthorizationUrl(array $options = []) { $url = parent::getAuthorizationUrl($options); $params = array_filter(['hd' => $this->hostedDomain, 'access_type' => $this->accessType]); if ($params) { $url .= '&' . $this->httpBuildQuery($params); } return $url; }
public function getAuthorizationUrl(array $options = []) { // this one is a tough one, it's impossible to provide the scopes and state anywhere else // than in this options array, $options['state'] = $this->getState(); if (!empty($this->scopes)) { $options['scope'] = $this->scopes; } return parent::getAuthorizationUrl($options); }
/** * @param Request $request * @return \Psr\Http\Message\ResponseInterface|RedirectResponse */ public function handle(Request $request) { $redirectUri = (string) $request->getAttribute('originalUri', $request->getUri())->withQuery(''); $this->provider = $this->getProvider($redirectUri); $session = $request->getAttribute('session'); $queryParams = $request->getQueryParams(); $code = array_get($queryParams, 'code'); $state = array_get($queryParams, 'state'); if (!$code) { $authUrl = $this->provider->getAuthorizationUrl($this->getAuthorizationUrlOptions()); $session->set('oauth2state', $this->provider->getState()); return new RedirectResponse($authUrl . '&display=popup'); } elseif (!$state || $state !== $session->get('oauth2state')) { $session->forget('oauth2state'); echo 'Invalid state. Please close the window and try again.'; exit; } $this->token = $this->provider->getAccessToken('authorization_code', compact('code')); $owner = $this->provider->getResourceOwner($this->token); $identification = $this->getIdentification($owner); $suggestions = $this->getSuggestions($owner); return $this->authResponse->make($request, $identification, $suggestions); }
public function getAuthorizationUrl($options = array()) { return parent::getAuthorizationUrl(array_merge(['approval_prompt' => []], $options)); }
public function testAuthorizationUrlStateParam() { $this->assertContains('state=XXX', $this->provider->getAuthorizationUrl(['state' => 'XXX'])); }
public function getAuthorizationUrl($options = []) { $url = parent::getAuthorizationUrl($options); $url .= '&type=web_server'; return $url; }
public function getAuthorizationUrl($options = []) { return parent::getAuthorizationUrl(['state' => $this->getState()]) . '&company_id=' . $this->companyId; }
public function getAuthorizationUrl($options = array()) { $url = parent::getAuthorizationUrl($options); return $url; }
/** * {@inheritDoc} */ public function getAuthorizationUrl($options = []) { $url = parent::getAuthorizationUrl(); // This is required as an option to be given a refresh token if (isset($options["duration"])) { $url .= "&duration={$options['duration']}"; } return $url; }