adrenth / wp-hydro-raindrop
WordPress 插件,用于集成 Hydro Raindrop MFA
Requires
- php: ^7.0
- adrenth/raindrop-sdk: ^1.2
- composer/installers: ^1.0
README
欢迎使用 GitHub 上的 Hydro Raindrop WordPress 插件仓库。
WP Hydro Raindrop
插件为您的 WordPress 网站提供 Hydro Raindrop 多因素认证。
功能
- 最小化设置麻烦
- 自动拦截登录
- 允许用户使用他们的 HydroID 设置 MFA
- 即时认证
注意:完成 MFA 流程需要免费 Hydro 移动应用。您可以在以下位置获取 iOS 应用 这里 或 Android 应用 这里。
安装
您可以使用以下方法之一安装插件
A) 在 WordPress 内部
- 访问 '插件 > 添加新插件'
- 搜索 'Hydro MFA'
- 在插件页面激活
WP Hydro Raindrop
插件。 - 按照以下 '激活后流程' 操作。
B) 手动使用插件存档(高级)
- 将
wp-hydro-raindrop
文件夹上传到/wp-content/plugins/
目录。 - 通过 WordPress 的 '插件' 菜单激活
WP Hydro Raindrop
插件。 - 按照以下 '激活后流程' 操作。
从 WordPress.org 下载插件:WP Hydro Raindrop,或直接从 WordPress 安装它(导航到 插件 > 添加新插件 > 搜索 'hydro')
C) 从 GitHub 手动安装(高级)
- 请确保您已安装 composer (https://getcomposer.org.cn/)
cd wp-content/plugins
(从您的 WordPress 安装根目录)git clone git@github.com:adrenth/wp-hydro-raindrop.git
cd wp-hydro-raindrop
composer install
(这将安装插件所需的依赖项.)
激活后流程
当插件激活时,会自动创建三个页面
- Hydro Raindrop MFA 页面 (
/hydro-raindrop/
) - Hydro Raindrop MFA 设置页面 (
/hydro-raindrop/settings
) - Hydro Raindrop MFA 设置页面 (
/hydro-raindrop/setup
)
每个页面都包含相应的短代码,这些短代码将负责 Hydro Raindrop MFA 的实现。这些页面旨在用于自定义和集成到您自己的自定义主题中。
默认情况下,Hydro Raindrop 的 集成 页面已启用。
要启用您网站上的 Hydro Raindrop MFA,以下步骤是必要的
Hydro Raindrop MFA 激活(管理员端)
- 在 Hydrogen 网站 上创建账户。
- 申请 生产访问权限。一旦批准,生成您的
客户端 ID
、客户端密钥
和应用程序 ID
。 - 在WordPress主菜单中,导航到 Hydro Raindrop -> 设置 -> API设置,输入上述详细信息,选择生产模式,插件即可准备就绪。
- 在 自定义 标签中设置首选的多因素认证方法(以及其他自定义选项)。
Hydro Raindrop MFA激活(用户端)
有三种MFA设置方法。
- 可选:用户决定在他们的账户上启用MFA。
- 提示(默认):登录后,将提示设置MFA。用户可以跳过此步骤,稍后设置MFA。
- 强制:MFA在全局范围内强制执行。用户在登录后必须设置MFA。
就这样!
要求
- SSL必须启用才能使MFA正常工作。
- 需要PHP 7.0或更高版本。
自定义
自定义Hydro Raindrop MFA页面
- 以管理员身份登录
- 转到 Hydro Raindrop -> 设置 > 自定义。
- 在 MFA页面 中选择 Hydro Raindrop MFA页面 或选择 使用默认MFA页面 以保持默认设置。
- 确保此页面上存在短代码
[hydro_raindrop_mfa]
。
可用的短代码
将这些短代码用于您的自定义模板/页面
[hydro_raindrop_mfa_flash]
:渲染闪存消息。[hydro_raindrop_mfa_form_open]
:渲染打开的<form>
标签。[hydro_raindrop_mfa_digits]
:渲染MFA数字。[hydro_raindrop_mfa_button_authorize class="my-css-class" label="Authorize"]
:渲染授权(提交)按钮。[hydro_raindrop_mfa_button_cancel class="my-css-class" label="Cancel"]
:渲染取消按钮。[hydro_raindrop_mfa_form_close>
:渲染关闭的</form>
标签以及nonce字段。
示例模板
为Hydro Raindrop MFA创建一个自定义页面模板(例如 /wp-content/themes/my-awesome-theme/hydro-raindrop-mfa.php
)。以下是使用短代码的示例。
<?php
/**
* Template Name: Hydro Raindrop MFA
*/
get_header();
?>
<!-- HTML -->
<div class="row">
<div class="col-sm">
<div class="card w-75">
<div class="card-body">
<?php echo do_shortcode( '[hydro_raindrop_mfa_form_open]' ); ?>
<div class="text-center">
<img src="https://www.hydrogenplatform.com/docs/hydro/v1/images/logo.png">
</div>
<h2 class="card-text text-center">
<?php echo do_shortcode( '[hydro_raindrop_mfa_digits]' ); ?>
</h2>
<div class="row">
<div class="col-md-4">
<?php echo do_shortcode( '[hydro_raindrop_mfa_button_cancel class="btn btn-default"]' ); ?>
</div>
<div class="col-md-8 text-right">
<?php echo do_shortcode( '[hydro_raindrop_mfa_button_authorize class="btn btn-primary"]' ); ?>
</div>
</div>
<?php echo do_shortcode( '[hydro_raindrop_mfa_form_close]' ); ?>
</div>
</div>
</div>
</div>
<!-- HTML -->
<?php
get_footer();
自定义MFA设置页面
- 以管理员身份登录
- 转到 Hydro Raindrop -> 设置 > 自定义。
- 在 MFA设置页面 中选择 Hydro Raindrop设置页面 或选择 使用默认MFA设置页面 以保持默认设置。
- 确保此页面上存在短代码
[hydro_raindrop_setup]
。
可用的短代码
将这些短代码用于您的自定义模板/页面
[hydro_raindrop_setup_flash]
:渲染闪存消息。[hydro_raindrop_setup_form_open]
:渲染打开的<form>
标签。[hydro_raindrop_setup_hydro_id]
:渲染HydroID输入表单字段。[hydro_raindrop_setup_button_submit class="my-css-class" label="Submit"]
:渲染提交按钮。[hydro_raindrop_setup_button_skip class="my-css-class" label="Skip"]
:渲染跳过按钮(如果适用)。[hydro_raindrop_setup_form_close]
:渲染关闭的</form>
标签以及nonce字段。
自定义MFA设置页面
- 以管理员身份登录
- 转到 Hydro Raindrop -> 设置 > 自定义。
- 在 MFA设置页面 中选择 Hydro Raindrop设置页面 或选择 使用默认MFA设置页面 以保持默认设置。
- 确保此页面上存在短代码
[hydro_raindrop_setup]
。
可用的短代码
将这些短代码用于您的自定义模板/页面
[hydro_raindrop_settings_flash]
:渲染闪存消息。[hydro_raindrop_settings_form_open]
:渲染打开<form>
标签。[hydro_raindrop_settings_checkbox_mfa_enabled]
:渲染复选框表单字段。[hydro_raindrop_settings_button_submit class="my-css-class" label="Submit"]
:渲染提交按钮。[hydro_raindrop_settings_form_close]
:渲染关闭</form>
标签及nonce字段。
操作
hydro_raindrop_user_blocked( WP_User $user )
当用户因为过多的验证失败尝试而被阻止时执行。在用户被阻止并在用户被登出之前执行。
hydro_raindrop_mfa_failed( WP_User $user, int $failed_attempts )
在多因素认证尝试失败后执行。
hydro_raindrop_mfa_success( WP_User $user )
在成功执行多因素认证后执行。
hydro_raindrop_setup_failed( WP_User $user )
当Hydro Raindrop设置失败时执行。
hydro_raindrop_setup_success( WP_User $user, string $hydro_id )
当用户成功完成Hydro Raindrop设置时执行。此时HydroID已确认并验证。
hydro_raindrop_pre_setup( WP_User $user )
当用户需要设置他们的HydroID时执行。给定的用户已认证。WordPress认证cookie可能未设置。
hydro_raindrop_pre_mfa( WP_User $user )
当用户需要执行多因素认证时执行。给定的用户已认证。WordPress认证cookie可能未设置。
文档
问题
- https://github.com/adrenth/wp-hydro-raindrop/issues
- https://wordpress.org/support/plugin/wp-hydro-raindrop
支持
贡献
请确保遵守WP代码风格,使用带有WordPress规则的PHP Code Sniffer在您的IDE中。如果您想解决问题/错误,请首先创建一个问题。
进一步阅读
有关Hydro或MFA以及它如何改变世界的更多信息,请查看以下内容
- Hydro的官方网站.
- ProjectHydro.
- Hydro的Medium博客.
- Hydro MFA客户端Raindrop API.
- 成为增长最快的社区的一部分! 加入Hydro社区。
- 您是一位希望扩展Hydro生态系统并赚取悬赏的开发者吗?请访问Hydro HCDP Github 页面。
- 关注Hydro在Telegram、Facebook、Twitter或Instagram上的官方账号。