public function user()
{
if (!$this->hasNecessaryVerifier()) {
throw new \InvalidArgumentException('Invalid request. Missing OAuth verifier.');
}
$token = $this->getToken();
$tokenCredentials = $token['tokenCredentials'];
$user = $this->mapUserToObject((array) $this->server->getUserDetails($tokenCredentials));
$user->setToken($tokenCredentials->getIdentifier(), $tokenCredentials->getSecret());
if ($user instanceof User) {
parse_str($token['credentialsResponseBody'], $credentialsResponseBody);
if (!$credentialsResponseBody || !is_array($credentialsResponseBody)) {
throw new CredentialsException('Unable to parse token credentials response.');
}
$user->setAccessTokenResponseBody($credentialsResponseBody);
}
return $user;
}