jeremykenedy/laravel2step

Laravel 2 步验证包

资助包维护!
jeremykenedy
Patreon

安装次数: 94,259

依赖者: 1

建议者: 0

安全: 0

星标: 273

关注者: 13

分支: 49

公开问题: 1

类型:

V3.1.0 2023-06-08 13:03 UTC

README

Laravel 2 Step Verification

Laravel 2 步验证

Laravel 2-Step Verification 是一个易于将两步用户验证添加到任何 Laravel 项目的包。它可配置和自定义。它使用通知向用户发送包含 4 位验证码的电子邮件。可以与 Laravel 的认证框架直接使用,也可以集成到其他项目中。

Travis-CI Build Latest Stable Version Total Downloads StyleCI Build Status Scrutinizer Code Quality Code Intelligence Status MadeWithLaravel.com shield License: MIT

目录

特性

要求

安装说明

  1. 在终端中从项目根目录运行

    Laravel 6+ 使用

        composer require jeremykenedy/laravel2step

    Laravel 5.8 使用

        composer require jeremykenedy/laravel2step:v1.4.0

    Laravel 5.7 及以下使用

        composer require jeremykenedy/laravel2step:v1.0.2
    
  2. 注册包

  • Laravel 5.5 及以上版本使用包自动发现功能,无需编辑 config/app.php 文件。

  • Laravel 5.4 及以下版本在 config/app.php 中的 providers 下注册包,如下所示

    'providers' => [
        jeremykenedy\laravel2step\laravel2stepServiceProvider::class,
    ];
  1. 从项目的根目录运行以下命令以发布包的视图、配置文件、资源和语言文件
    php artisan vendor:publish --tag=laravel2step
  1. 可选:更新您的 .env 文件和相关设置(请参阅环境文件部分)

  2. 运行迁移以添加验证码表

    php artisan migrate
  • 注意:如果您想指定不同的表或连接,请确保更新您的 .env 文件以包含所需的配置变量。
  1. 确保您的应用程序已配置电子邮件 - 这通常通过在 .env 文件中配置 Laravel 默认设置来完成。

配置

Laravel 2-Step Verification 可以在 /config/laravel2step.php 中直接配置,或者在 .env 文件中的变量中配置。

环境文件

以下是可用的 .env 文件变量

LARAVEL_2STEP_ENABLED=true
LARAVEL_2STEP_DATABASE_CONNECTION=mysql
LARAVEL_2STEP_DATABASE_TABLE=laravel2step
LARAVEL_2STEP_USER_MODEL=App\User
LARAVEL_2STEP_EMAIL_FROM="anEmailIsrequired@email.com"
LARAVEL_2STEP_EMAIL_FROM_NAME="Laravel 2 Step Verification"
LARAVEL_2STEP_EMAIL_SUBJECT='Laravel 2 Step Verification'
LARAVEL_2STEP_EXCEEDED_COUNT=3
LARAVEL_2STEP_EXCEEDED_COUNTDOWN_MINUTES=1440
LARAVEL_2STEP_VERIFIED_LIFETIME_MINUTES=360
LARAVEL_2STEP_RESET_BUFFER_IN_SECONDS=300
LARAVEL_2STEP_CSS_FILE="css/laravel2step/app.css"
LARAVEL_2STEP_APP_CSS_ENABLED=false
LARAVEL_2STEP_APP_CSS="css/app.css"
LARAVEL_2STEP_BOOTSTRAP_CSS_CDN_ENABLED=true
LARAVEL_2STEP_BOOTSTRAP_CSS_CDN="https://maxcdn.bootstrap.ac.cn/bootstrap/3.3.7/css/bootstrap.min.css"

使用

Laravel 2-Step Verification 通过中间件启用。您可以通过以下中间件在您的路由和控制器中启用两步验证

twostep

web.php 中使用中间件开始记录页面视图的示例

Route::group(['middleware' => ['twostep']], function () {
    Route::get('/home', 'HomeController@index')->name('home');
});

路由

  • /verification/needed
  • /verification/verify
  • /verification/resend

截图

Verification Page Resent Email Modal Lock Warning Modal Locked Page Verification Email

文件树

└── laravel2step
    ├── .gitignore
    ├── LICENSE
    ├── README.md
    ├── composer.json
    └── src
        ├── .env.example
        ├── Laravel2stepServiceProvider.php
        ├── app
        │   ├── Http
        │   │   ├── Controllers
        │   │   │   └── TwoStepController.php
        │   │   └── Middleware
        │   │       └── Laravel2step.php
        │   ├── Models
        │   │   └── TwoStepAuth.php
        │   ├── Notifications
        │   │   └── SendVerificationCodeEmail.php
        │   └── Traits
        │       └── Laravel2StepTrait.php
        ├── config
        │   └── laravel2step.php
        ├── database
        │   └── migrations
        │       └── 2017_12_09_070937_create_two_step_auth_table.php
        ├── public
        │   └── css
        │       ├── app.css
        │       └── app.min.css
        ├── resources
        │   ├── assets
        │   │   └── scss
        │   │       ├── _animations.scss
        │   │       ├── _mixins.scss
        │   │       ├── _modals.scss
        │   │       ├── _variables.scss
        │   │       ├── _verification.scss
        │   │       └── app.scss
        │   ├── lang
        │   │   └── en
        │   │       └── laravel-verification.php
        │   └── views
        │       ├── layouts
        │       │   └── app.blade.php
        │       ├── partials
        │       ├── scripts
        │       │   └── input-parsing-auto-stepper.blade.php
        │       └── twostep
        │           ├── exceeded.blade.php
        │           └── verification.blade.php
        └── routes
            └── web.php

  • 可以使用 brew 安装 tree 命令:brew install tree
  • 使用以下命令生成的文件树:tree -a -I '.git|node_modules|vendor|storage|tests'

未来

  • 单元测试
  • Travis-CI 集成。
  • 它有自己的 HTML 邮件模板。
  • 添加 SMS 或其他通知。
  • 添加捕获 IP 地址。
  • 相应地更改增量表和逻辑
    • 创建 Artisan 命令和作业来修剪这些条目。

提交问题

在提交问题之前有一些考虑因素

  • 你们都太棒了!
  • 阅读说明 并确保所有步骤都 正确执行
  • 检查 该问题是否不是 特定于您的开发环境 设置。
  • 提供 重复步骤
  • 尝试查找问题,如果您 有解决方案,请提交拉取请求
  • 表明您已尝试 查找问题
  • 检查 您所报告的问题是否是之前已报告的问题的 重复
  • 按照这些说明操作表明您已尝试过。
  • 如果您有任何问题,请发送电子邮件至 jeremykenedy@gmail.com
  • 需要帮助吗?我可以在 Slack 上尽我所能帮助您:https://opensourcehelpgroup.slack.com
  • 请体谅,这是一个开源项目,我免费提供给社区在提交问题时使用。

开源项目是社区的责任,用于使用、贡献和调试。

许可证

Laravel 两步验证许可协议遵循 MIT 许可。祝您使用愉快!