getAction() == OAuth_Provider::INITIATE) { list($token, $token_secret) = $demo->createTempToken($oauth->getActionDatas()); $oauth->answerInitiate($token, $token_secret); } elseif ($oauth->getAction() == OAuth_Provider::AUTHORIZE) { $datas = false; if ($token = $oauth->getActionData('token')) { if (!($datas = $demo->getTempToken($token))) { $datas = false; } } if (!$datas) { die("Invalid temporary token ".$token); } $app = $demo->getApp($datas['app']); // Démo HTTP Basic Auth // (le client envoie pseudo/mot de passe au serveur à la place du resource owner) if ($app['allow_http_auth'] && !empty($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['PHP_AUTH_PW'])) { if ($_SERVER['PHP_AUTH_USER'] == 'ok') { // login/pass ok // on crée le vérifieur, et on le donne au truc qui fait la requête en retour $verifier = $demo->createVerifier($token, $datas['callback']); $url = $oauth->getAuthorizeCallbackUrl($datas['callback'], $verifier); $url = parse_url($url); header('HTTP/1.1 200 OK', true, 200); header('Content-Type: application/x-www-form-urlencoded'); echo $url['query']; exit; } else { header('HTTP/1.1 401 Unauthorized', true, 401); echo "Invalid username"; exit; } } if (!empty($_POST['yes'])) { $verifier = $demo->createVerifier($token, $datas['callback']); if ($url = $oauth->getAuthorizeCallbackUrl($datas['callback'], $verifier)) { header('Location: '.$url); exit; } else { // Si on arrive là c'est que la lib oauth dis que c'est du out of band, // il faut afficher le code pour que le resource owner le recopie sur le client echo "Vous devez recopier ce code : ".$verifier."."; exit; } } elseif (!empty($_POST['no'])) { $demo->deleteTempToken($oauth->getActionData('token')); echo "Bon ben tant pis :("; exit; } echo '

Autoriser l\'application ?

Infos '; if ($datas['callback'] == OAuth_Provider::OUT_OF_BAND) { echo '

Vous serez amené à recopier le code de vérification à la fin de l\'acceptation.

'; } else { echo '

Vous serez redirigé sur '.htmlspecialchars($datas['callback']).' en acceptant.

'; } if (empty($datas['app'])) { echo '

L\'application qui demande à accéder n\'est pas identifiée.

'; } else { echo '

C\'est l\'application « '.$app['name'].' » qui demande à s\'auth.

'; } echo '

'; } elseif ($oauth->getAction() == OAuth_Provider::TOKEN) { // Verifier vérifié ! $verifier = $demo->getVerifier($oauth->getActionData('verifier')); $demo->deleteTempToken($verifier['token']); $demo->deleteVerifier($oauth->getActionData('verifier')); list($token, $secret) = $demo->createPermanentToken($oauth->getActionDatas()); $oauth->answerToken($token, $secret); } elseif ($oauth->getAction() == OAuth_Provider::ALLOWED) { echo json_encode(array('cool' => true, 'timestamp' => time())); } else { die("No OAuth action"); } ?>