-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c348257
commit 94b80af
Showing
8 changed files
with
610 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# PHPStorm | ||
.idea | ||
|
||
# Composer | ||
composer.phar | ||
composer.lock | ||
vendor | ||
|
||
phpunit.xml | ||
.phpunit.result.cache | ||
build/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
language: php | ||
|
||
cache: | ||
directories: | ||
- $HOME/.composer/cache | ||
|
||
php: | ||
- 5.6 | ||
- 7.0 | ||
- 7.1 | ||
- 7.2 | ||
- 7.3 | ||
- 7.4snapshot | ||
|
||
matrix: | ||
allow_failures: | ||
- php: nightly | ||
|
||
before_script: | ||
- travis_retry composer install | ||
|
||
script: | ||
- composer test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,83 @@ | ||
GoogleAuthenticator | ||
Google Authenticator (TOTP) | ||
=========================== | ||
|
||
[![Build Status](https://travis-ci.org/Vectorface/GoogleAuthenticator.png?branch=master)](https://travis-ci.org/Vectorface/GoogleAuthenticator) | ||
|
||
This is a fork of https://github.com/PHPGangsta/GoogleAuthenticator with the following changes: | ||
|
||
- Uses https://github.com/endroid/qr-code to generate QR code data URIs | ||
- No longer generates Google's Chart API to make QR code links | ||
- Uses namespacing | ||
- Augmented test coverage to 100% | ||
- Bumped minimum PHP version to 5.6 | ||
|
||
Original License: | ||
----------------- | ||
|
||
* Copyright (c) 2012-2016, [http://www.phpgangsta.de](http://www.phpgangsta.de) | ||
* Author: Michael Kliewe, [@PHPGangsta](http://twitter.com/PHPGangsta) and [contributors](https://github.com/PHPGangsta/GoogleAuthenticator/graphs/contributors) | ||
* Licensed under the BSD License. | ||
|
||
Description: | ||
------------ | ||
|
||
This PHP class can be used to interact with the Google Authenticator mobile app for 2-factor-authentication. This class | ||
can generate secrets, generate codes, validate codes and present a QR-Code for scanning the secret. It implements TOTP | ||
according to [RFC6238](https://tools.ietf.org/html/rfc6238) | ||
|
||
For a secure installation you have to make sure that used codes cannot be reused (replay-attack). You also need to | ||
limit the number of verifications, to fight against brute-force attacks. For example you could limit the amount of | ||
verifications to 10 tries within 10 minutes for one IP address (or IPv6 block). It depends on your environment. | ||
|
||
Usage: | ||
------ | ||
|
||
See following example: | ||
|
||
```php | ||
<?php | ||
require_once __DIR__ . 'vendor/autoload.php'; | ||
|
||
use Vectorface\GoogleAuthenticator; | ||
|
||
$ga = new GoogleAuthenticator(); | ||
$secret = $ga->createSecret(); | ||
echo "Secret is: ".$secret."\n\n"; | ||
|
||
$qrCodeUrl = $ga->getQRCodeUrl('Blog', $secret); | ||
echo "PNG Data URI for the QR-Code: ".$qrCodeUrl."\n\n"; | ||
|
||
$oneCode = $ga->getCode($secret); | ||
echo "Checking Code '$oneCode' and Secret '$secret':\n"; | ||
|
||
$checkResult = $ga->verifyCode($secret, $oneCode, 2); // 2 = 2*30sec clock tolerance | ||
if ($checkResult) { | ||
echo 'OK'; | ||
} else { | ||
echo 'FAILED'; | ||
} | ||
``` | ||
Running the script provides output similar to: | ||
``` | ||
Secret is: OQB6ZZGYHCPSX4AK | ||
Google Charts URL for the QR-Code: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAAEYCAIAAAAI[snipped] | ||
Checking Code '848634' and Secret 'OQB6ZZGYHCPSX4AK': | ||
OK | ||
``` | ||
|
||
Installation: | ||
------------- | ||
|
||
- Use [Composer](https://getcomposer.org/doc/01-basic-usage.md) to | ||
install the package | ||
|
||
```composer require vectorface/googleauthenticator``` | ||
|
||
Run Tests: | ||
---------- | ||
|
||
- All tests are inside `tests` folder. | ||
- Execute `composer install` to prepare your environment. | ||
- Run `composer test` from the project root directory. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
{ | ||
"name": "vectorface/googleauthenticator", | ||
"description": "Google Authenticator 2-factor authentication", | ||
"version": "1.0.0", | ||
"type": "library", | ||
"keywords": ["GoogleAuthenticator", "TOTP", "rfc6238"], | ||
"license": ["BSD-2-Clause"], | ||
"authors": [ | ||
{ | ||
"name": "Michael Kliewe", | ||
"email": "[email protected]", | ||
"homepage": "http://www.phpgangsta.de/", | ||
"role": "Developer" | ||
}, | ||
{ | ||
"name": "Francis Lavoie", | ||
"email": "[email protected]", | ||
"homepage": "http://vectorface.com/", | ||
"role": "Developer" | ||
} | ||
], | ||
"support": { | ||
"source": "https://github.com/Vectorface/GoogleAuthenticator", | ||
"issues": "https://github.com/Vectorface/GoogleAuthenticator/issues" | ||
}, | ||
"require": { | ||
"php": ">=5.6", | ||
"endroid/qr-code": "^2" | ||
}, | ||
"require-dev": { | ||
"phpunit/phpunit": "^6" | ||
}, | ||
"config": { | ||
"sort-packages": true | ||
}, | ||
"autoload": { | ||
"psr-4": { | ||
"Vectorface\\": "src/" | ||
} | ||
}, | ||
"autoload-dev": { | ||
"psr-4": { | ||
"Tests\\Vectorface\\": "tests/" | ||
} | ||
}, | ||
"scripts": { | ||
"test": [ | ||
"@test-unit" | ||
], | ||
"test-unit": "phpunit --color=always" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<phpunit backupGlobals="false" bootstrap="./vendor/autoload.php" colors="true"> | ||
<testsuites> | ||
<testsuite name="default"> | ||
<directory>./tests</directory> | ||
</testsuite> | ||
</testsuites> | ||
<filter> | ||
<whitelist> | ||
<directory>./src</directory> | ||
</whitelist> | ||
</filter> | ||
<logging> | ||
<log type="coverage-text" target="php://stdout"/> | ||
<log type="coverage-html" target="build/coverage"/> | ||
<log type="coverage-clover" target="build/logs/clover.xml"/> | ||
</logging> | ||
</phpunit> |
Oops, something went wrong.