承接 xsuchy09/googleauthenticator 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

xsuchy09/googleauthenticator

最新稳定版本:2.0.1

Composer 安装命令:

composer require xsuchy09/googleauthenticator

包简介

Google Authenticator 2-factor authentication, fork from phpgangsta/googleauthenticator.

README 文档

README

Build Status

Fork from:

phpgangsta/googleauthenticator

Original copyright info:

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

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
require_once 'GoogleAuthenticator/GoogleAuthenticator.php';

$ga = new GoogleAuthenticator();

$name = 'suchy';
$secret = $ga->createSecret();
$title = 'WAMOS.cz';

echo sprintf('Name is: %s', $name) . PHP_EOL;
echo sprintf('Secret is: %s', $secret) . PHP_EOL;
echo sprintf('Title is: %s', $title) . PHP_EOL . PHP_EOL;

$dataToRender = $ga->getOtpAuthLink($name, $secret, $title); // or getDataToRender method - just alis
echo sprintf('Data to render: %s', $dataToRender) . PHP_EOL . PHP_EOL;

// don't use this, don't share you security with third parties
$qrCodeUrl = $ga->getQRCodeGoogleUrl($name, $secret, $title);
echo sprintf('Google Charts URL for the QR-Code: %s', $qrCodeUrl) . PHP_EOL . PHP_EOL;

$oneCode = $ga->getCode($secret);
echo sprintf('Checking Code %s and Secret %s:', $oneCode, $secret) . PHP_EOL;

$checkResult = $ga->verifyCode($secret, $oneCode, 2);    // 2 = 2*30sec clock tolerance
if (true === $checkResult) {
    echo 'OK';
} else {
    echo 'FAILED';
}

Running the script provides the following output:

Name is: suchy
Secret is: SECRET
Title is: WAMOS.cz

Data to render: otpauth://totp/suchy?secret=SECRET&issuer=WAMOS.cz

Google Charts URL for the QR-Code: https://chart.apis.google.com/chart?cht=qr&chs=200x200&chl=otpauth%3A%2F%2Ftotp%2Fsuchy%3Fsecret%3DSECRET%26issuer%3DWAMOS.cz&chld=M|0

Checking Code '123456' and Secret 'SECRET':
OK

Installation:

composer require xsuchy09/googleauthenticator

  • Composer will take care of autoloading the library. Just include the following at the top of your file

    require_once __DIR__ . '/../vendor/autoload.php';

Run Tests:

  • All tests are inside src/tests folder.
  • Execute composer install and then run the tests from project root directory.
  • Shell script is prepared - just run phpunit.sh from the project root directory.
  • It will generate code coverage report too inside .phpunit directory.

Security recommendation:

Don't use methods GoogleAuthenticator::getQRCodeGoogleUrl and GoogleAuthenticator::getQRCodeQRServerUrl. It is just for sample. Don't share your secret with third party. Use your own QR code generation. You can use libraries like:

But don't believe libraries of third parties too. Do security audit of third party library and make your own fork or don't update these libraries without checking the security of update.

ToDo:

Notes:

If you like this script or have some features to add: contact me, visit my webpage, fork this project, send pull requests, you know how it works.

统计信息

  • 总下载量: 209
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 721
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-4-Clause
  • 更新时间: 2019-08-21

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固