本文整理匯總了PHP中App\Model\User::setProviderAccessToken方法的典型用法代碼示例。如果您正苦於以下問題:PHP User::setProviderAccessToken方法的具體用法?PHP User::setProviderAccessToken怎麽用?PHP User::setProviderAccessToken使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類App\Model\User
的用法示例。
在下文中一共展示了User::setProviderAccessToken方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: handleOAuthCallback
/**
* @param Request $request
* @param User $user
*
* @return array
*/
public function handleOAuthCallback(Request $request, User $user = null)
{
$oauthVerifier = $request->get('oauth_verifier');
$oauthToken = $request->get('oauth_token');
$temporaryCredentials = $this->session->get('provider/' . $this->getName() . '/temporary_credentials');
$tokenCredentials = $this->oauthClient->getTokenCredentials($temporaryCredentials, $oauthToken, $oauthVerifier);
$userDetails = $this->oauthClient->getUserDetails($tokenCredentials);
$accessToken = ['identifier' => $tokenCredentials->getIdentifier(), 'secret' => $tokenCredentials->getSecret(), 'username' => $userDetails->nickname];
if (null !== $user) {
$user->setProviderAccessToken($this->getName(), $accessToken);
}
return ['access_token' => $accessToken, 'scope' => null];
}
示例2: handleOAuthCallback
/**
* @param Request $request
* @param User $user
*
* @todo passing $user should not be allowed
*/
public function handleOAuthCallback(Request $request, User $user = null)
{
$code = $request->get('code');
$token = $request->get('state');
if (!$this->csrfProvider->isCsrfTokenValid($this->getName(), $token)) {
throw new ProviderException('CSRF Mismatch');
}
$payload = ['client_id' => $this->getOAuthClientId(), 'client_secret' => $this->getOAuthClientSecret(), 'code' => $code];
$client = clone $this->client;
$client->setDefaultOption('headers/Accept', 'application/json');
$request = $client->post($this->getAccessTokenUrl());
$request->setBody(http_build_query($payload));
$response = $request->send();
$data = $response->json();
if (array_key_exists('error', $data)) {
$this->logger->error('An error occurred during authentication', ['data' => $data]);
throw new ProviderException(sprintf('%s: %s', $data['error'], $data['error_description']));
}
if (null !== $user) {
$user->setProviderAccessToken($this->getName(), $data['access_token']);
$user->setProviderScopes($this->getName(), explode(',', $data['scope']));
}
return ['access_token' => $data['access_token'], 'scope' => $data['scope']];
}