lorddashme/php-two-factor-auth
Composer 安装命令:
composer require lorddashme/php-two-factor-auth
包简介
A PHP library for RFC 4226 and RFC 6238.
README 文档
README
A PHP library for RFC 4226 and RFC 6238.
Requirement(s)
- PHP version from 5.6.* up to latest.
Install
- Recommended to install using Composer. Use the command below to install the package:
composer require lorddashme/php-two-factor-auth
Usage
HOTP
- To generate HMAC-based One-Time Password algorithm:
<?php require __DIR__ . '/vendor/autoload.php'; use LordDashMe\TwoFactorAuth\RFC4226\HOTP; use LordDashMe\TwoFactorAuth\Utility\Base32; $secret = Base32::encode('P@ssw0rd!'); $hotp = new HOTP($secret); $hotp->setLength(6) ->setAlgorithm('sha1') ->prepare() ->generate(); echo $hotp->get(); // 444555
- To verify the generated HOTP:
<?php require __DIR__ . '/vendor/autoload.php'; use LordDashMe\TwoFactorAuth\RFC4226\HOTP; use LordDashMe\TwoFactorAuth\Utility\Base32; $secret = Base32::encode('P@ssw0rd!'); $hotp = new HOTP($secret); $hotp->setLength(6) ->setAlgorithm('sha1') ->prepare(); echo $hotp->verify('444555'); // true
TOTP
- To generate Time-Based One-Time Password algorithm:
<?php require __DIR__ . '/vendor/autoload.php'; use LordDashMe\TwoFactorAuth\RFC6238\TOTP; use LordDashMe\TwoFactorAuth\Utility\Base32; $secret = Base32::encode('P@ssw0rd!'); $totp = new TOTP($secret); $totp->setTimeZone('Asia/Manila') ->setTimeRemainingInSeconds(30) ->setTimeAdjustments(10) ->setLength(6) ->setAlgorithm('sha1') ->prepare() ->generate(); echo $totp->get(); // 552344
- To verify the generated TOTP:
<?php require __DIR__ . '/vendor/autoload.php'; use LordDashMe\TwoFactorAuth\RFC6238\TOTP; use LordDashMe\TwoFactorAuth\Utility\Base32; $secret = Base32::encode('P@ssw0rd!'); $totp = new TOTP($secret); $totp->setTimeZone('Asia/Manila') ->setTimeRemainingInSeconds(30) ->setTimeAdjustments(10) ->setLength(6) ->setAlgorithm('sha1') ->prepare(); echo $totp->verify('552344'); // true
Google Authenticator Barcode Generation
- To generate a barcode image that will use by the Google Authenticator mobile app:
<?php require __DIR__ . '/vendor/autoload.php'; use LordDashMe\TwoFactorAuth\Utility\Base32; use LordDashMe\TwoFactorAuth\GoogleAuthenticator\BarcodeURL; use LordDashMe\TwoFactorAuth\GoogleAuthenticator\TOTPFormat; $secret = Base32::encode('P@ssw0rd!'); $accountUser = 'reyesjoshuaclifford@gmail.com'; $issuer = 'TwoFactorAuth'; $digits = 6; $period = 30; $algorithm = 'sha1'; $format = new TOTPFormat($period); $barcodeURL = new BarcodeURL($secret, $accountUser, $issuer, $format); $barcodeURL->setAlgorithm($algorithm) // sha1 (Default), sha256, sha512 ->setDigits($digits) ->build(); echo $barcodeURL->get(); // https://chart.googleapis.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/TwoFactorAuth:reyesjoshuaclifford@gmail.com?secret=KBAHG43XGBZGIII&algorithm=SHA1&digits=6&period=30&issuer=TwoFactorAuth
Other Reference
License
This package is open-sourced software licensed under the MIT license.
lorddashme/php-two-factor-auth 适用场景与选型建议
lorddashme/php-two-factor-auth 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 14 次下载、GitHub Stars 达 3, 最近一次更新时间为 2020 年 05 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「Authentication」 「otp」 「hotp」 「totp」 「rfc4226」 「rfc6238」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 lorddashme/php-two-factor-auth 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 lorddashme/php-two-factor-auth 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 lorddashme/php-two-factor-auth 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Security tools for PHP
Simple HOTP/TOTP generation library
A Google Authenticator Bundle for Symfony
Automatically logs-in users if they are already authenticated by a remote source. (e.g. environment variable REMOTE_USER)
GraphQL authentication for your headless Craft CMS applications.
Laravel middleware to restrict a site or specific routes using HTTP basic authentication
统计信息
- 总下载量: 14
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 12
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-05-18