PHP class for Yubico authentication
Clone or download
Latest commit fdd2cf4 Jan 21, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
example http: -> https: Nov 22, 2018
tests Attempt to fix travis on 7.*. Nov 22, 2018
.travis.yml Only run Travis on supported PHP versions. Nov 22, 2018
BLURB Prepare for release. Feb 5, 2015
COPYING Prepare for release. Feb 5, 2015
Makefile Release version 2.6 Jan 21, 2019
NEWS Release version 2.6 Jan 21, 2019
README Release version 2.6 Jan 21, 2019
README.adoc symlinked README Oct 29, 2014
Yubico.php Replace each() with foreach() Nov 22, 2018
demo.php Assume https always in demo. Nov 22, 2018
package.xml Release version 2.6 Jan 21, 2019
phpunit.xml add a very simple test suite Mar 10, 2016


Auth_Yubico PHP class

The Yubico authentication PHP class provides an easy way to integrate the Yubikey into your existing PHP-based user authentication infrastructure. Installation is simple using PEAR.

The development community is co-ordinated via the Github project.


Make sure your PHP installation supports curl, and that you have installed PEAR. On Debian/Ubuntu systems:

$ apt-get install libapache2-mod-php5 php5-curl php-pear

Install the component by invoking:

$ wget
$ pear install Auth_Yubico-2.6.tgz


Make sure that you have read Using a YubiKey OTP library before continuing.

This is an example of how you can use the Yubico.php inside an HTML *.php file:

 require_once 'Auth/Yubico.php';
 $otp = "ccbbddeertkrctjkkcglfndnlihhnvekchkcctif";

 # Generate a new id+key from
 $yubi = new Auth_Yubico('42', 'FOOBAR=');
 $auth = $yubi->verify($otp);
 if (PEAR::isError($auth)) {
    print "<p>Authentication failed: " . $auth->getMessage();
    print "<p>Debug output from server: " . $yubi->getLastResponse();
 } else {
    print "<p>You are authenticated!";

API demo

Provided in the package is also a script demo.php that demonstrates how you may use the package. The script is deployed here.

Example site

There is also a complete example site that demonstrates one-factor and two-factor mode. It requires a database to store the username and passwords. Database schema is in example/db.sql and configuration for the database needs to go into example/config.php.

The example site is deployed here.

Modhex Calculator

This package also includes Modhex_Calculator.php, a web page illustrating how to work with the modhex encoding. It is deployed here


The project is licensed under a BSD license. See the file COPYING for exact wording. For any copyright year range specified as YYYY-ZZZZ in this package note that the range specifies every single year in that closed interval.