adrenth / laravel-hydro-raindrop
将 Hydro Raindrop 集成到您的 Laravel 应用程序中。
Requires
- php: ^7.1.3
- adrenth/raindrop-sdk: ^1.2
Requires (Dev)
- laravel/framework: 5.8.*
This package is auto-updated.
Last update: 2020-05-23 14:42:36 UTC
README
Hydro Raindrop 是为了防止钓鱼、黑客攻击和非法访问您客户的资料而构建的。Hydro 提供易于实现的 API 和适用于 Android 和 iOS 的美观移动应用。最好的部分是,集成对您和您的用户都是 100% 免费的!
要求
Laravel
此包允许开发者为应用程序集成第二层安全(多因素身份验证)。
注册
在您可以使用此服务之前,您需要在 www.hydrogenplatform.com 创建一个开发者帐户。您可以创建一个新的应用程序以获取 Client ID
、Client Secret
和 Application 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_id
、hydro_raindrop_enabled
和 hydro_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 的官方网站.
- Hydro 的 Medium 博客.
- Hydro MFA 客户端 Raindrop API.
- 成为增长最快的社区的一部分!加入 Hydro 社区。
- 您是一名想要扩展 Hydro 生态系统并赚取悬赏的开发人员吗?访问 Hydro HCDP Github 页面。
- 在 Telegram、Facebook、Twitter 或 Instagram 上关注 Hydro。
您正在寻找即插即用的解决方案吗?Hydro Raindrop 还适用于以下内容管理系统