adrenth/laravel-hydro-raindrop

此包已被放弃,不再维护。没有建议的替代包。

将 Hydro Raindrop 集成到您的 Laravel 应用程序中。

1.0.0 2019-05-05 12:23 UTC

This package is auto-updated.

Last update: 2020-05-23 14:42:36 UTC


README

Hydro Raindrop 是为了防止钓鱼、黑客攻击和非法访问您客户的资料而构建的。Hydro 提供易于实现的 API 和适用于 Android 和 iOS 的美观移动应用。最好的部分是,集成对您和您的用户都是 100% 免费的!

了解更多关于 Hydro Raindrop 的信息

要求

  • PHP 7.1
  • Laravel 5.8
  • Hydro 应用程序(《iOS》或《Android》)

Laravel

此包允许开发者为应用程序集成第二层安全(多因素身份验证)。

注册

在您可以使用此服务之前,您需要在 www.hydrogenplatform.com 创建一个开发者帐户。您可以创建一个新的应用程序以获取 Client IDClient SecretApplication ID

默认情况下,您可以使用沙盒环境,您可以通过 www.hydrogenplatform.com 网站随时申请生产环境。

安装

使用以下 composer 命令安装包

composer require adrenth/laravel-hydro-raindrop

安装资产

发布公共资产

php artisan vendor:publish --tag=public --force

安装配置

发布配置文件 app/hydro-raindrop.php

php artisan vendor:publish --tag=config

身份验证路由(可选)

要添加 Laravel 的默认身份验证路由,请执行此命令

php artisan make:auth

请参阅有关此主题的官方文档: https://laravel.net.cn/docs/5.8/authentication

环境配置

将环境变量添加到您的 .env.example 文件

HYDRO_RAINDROP_CLIENT_ID = "[Client ID here]"
HYDRO_RAINDROP_SECRET = "[Client Secret here]"
HYDRO_RAINDROP_APPLICATION_ID = "[Application ID here]"
HYDRO_RAINDROP_ENVIRONMENT = "sandbox"

不要将敏感信息提交到您的存储库。您的 .env 文件应包含实际的凭据,并且应被 Git 忽略。

查找 app/raindrop.php 文件并检查配置。

更改配置后,不要忘记运行以下命令以清除配置缓存。

php artisan config:cache

运行数据库迁移

运行数据库迁移。

php artisan migrate

这将向 users 数据库表(表名可配置,请检查 config/raindrop.php)添加 hydro_idhydro_raindrop_enabledhydro_raindrop_confirmed 列。

中间件

raindrop 中间件添加到 App/Http/Kernel

protected $routeMiddleware = [
    // ..
    'hydro-raindrop' => \Adrenth\LaravelHydroRaindrop\Middleware::class
];

使用说明

现在将 raindrop 中间件添加到您想要通过 Hydro Raindrop MFA 保护的路由中。

Route::get('/admin', function () {
    return view('admin.index');
})->middleware(['auth', 'hydro-raindrop']);

注意,hydro-raindrop 中间件仅与已认证会话一起工作。因此,它应该与 auth 中间件结合使用。

尝试次数达到 x 次后的限流/锁定

除非您真的需要一些特别的东西,否则您可能可以使用 Laravel 的 路由限流中间件 来实现这一点

Route::get('/admin', function () {
    return view('admin.index');
})->middleware(['auth', 'hydro-raindrop', 'throttle']);

覆盖包视图

可以覆盖此包提供的视图。

有关覆盖视图的信息,请参阅 [Laravel 文档页面](https://laravel.net.cn/docs/5.8/packages#views)。

辅助工具

当开发人员想要创建自己的界面来处理 HydroID 并启用/禁用 MFA 安全层时,可以使用 UserHelper 类。

控制台命令

命令 描述
hydro-raindrop:reset-hydro {user} 重置用户的 Hydro Raindrop MFA。
hydro-raindrop:transfer-hydro {userA} {userB} 将 Hydro Raindrop MFA 从一个用户转移到另一个用户。
hydro-raindrop:unblock-user {user} 取消锁定因多次失败的 MFA 尝试而被锁定的指定用户。

事件

事件 有效载荷 描述
UserIsBlocked $user 在用户因多次失败的 MFA 尝试而被锁定后触发。
UserLoginIsBlocked $user 在登录后但在认证会话销毁之前触发。
UserMfaSessionStarted $user 在启动 MFA 会话时触发。
SignatureFailed $user 在 MFA 签名失败时触发,即用户输入了无效的 MFA 消息。
SignatureVerified $user 在 MFA 签名正确时触发,即用户输入了有效的 MFA 消息。
HydroIdAlreadyMapped $user, $hydroId 当 HydroID 已由任何用户映射到应用程序时触发。
HydroIdDoesNotExist $user, $hydroId 在将 HydroID 发送到 API 并找不到 HydroID 之后触发。
HydroIdRegistered $user, $hydroId 当 HydroID 成功注册时触发。
HydroIdRegistrationFailed $user, $hydroId 在调用 API 后,HydroID 注册失败时触发。API 错误。

进一步阅读

有关 Hydro 或 MFA 以及它如何改变世界的更多信息,请查看以下内容

您正在寻找即插即用的解决方案吗?Hydro Raindrop 还适用于以下内容管理系统