.. | ||
src | ||
tests | ||
UTF-8 | ||
vendor | ||
ChangeLog | ||
composer.json | ||
composer.lock | ||
documentation_cs.html | ||
documentation_cz.html | ||
lang_cs.inc.php | ||
lang_cz.inc.php | ||
lang_de.inc.php | ||
lang_en.inc.php | ||
LICENSE | ||
phpunit.xml | ||
README.md | ||
S9yStore.php | ||
serendipity_event_browserid.js | ||
serendipity_event_browserid.php |
portier-php
A Portier client library for PHP
Example
<?php
require 'vendor/autoload.php';
$app = new \Slim\App();
$redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
$portier = new \Portier\Client\Client(
new \Portier\Client\RedisStore($redis),
'http://localhost:8000/verify'
);
$app->get('/', function($req, $res) {
$res = $res
->withStatus(200)
->withHeader('Content-Type', 'text/html; charset=utf-8');
$res->getBody()->write(
<<<EOF
<p>Enter your email address:</p>
<form method="post" action="/auth">
<input name="email" type="email">
<button type="submit">Login</button>
</form>
EOF
);
return $res;
});
$app->post('/auth', function($req, $res) use ($portier) {
$authUrl = $portier->authenticate($req->getParsedBodyParam('email'));
return $res
->withStatus(303)
->withHeader('Location', $authUrl);
});
$app->post('/verify', function($req, $res) use ($portier) {
$email = $portier->verify($req->getParsedBodyParam('id_token'));
$res = $res
->withStatus(200)
->withHeader('Content-Type', 'text/html; charset=utf-8');
$res->getBody()->write(
<<<EOF
<p>Verified email address ${email}!</p>
EOF
);
return $res;
});
$app->run();