bymayo / porter
为用户和账户提供大量辅助工具的工具包
Requires
- craftcms/cms: ^5.0.0
Requires (Dev)
- craftcms/phpstan: dev-main
- craftcms/rector: dev-main
- vlucas/phpdotenv: ^3.0
README
Porter for Craft CMS 5
Porter 是一款 Craft CMS 插件,是所有用户功能的缺失工具箱。
功能
- 删除账户
- 允许用户在前端删除自己的账户
- 可选地发送账户删除的电子邮件确认
- 可定制的“关键字”,用户需要输入,例如 DELETE 或用户字段
- 停用账户
- 允许用户在前端停用自己的账户
- 可选地发送账户停用的电子邮件确认
- 停用的用户可以选择在 X 天后被删除
- 魔法链接
- 让用户通过发送到他们邮箱的链接登录
- 允许通过链接在前端和/或控制面板登录
- 设置过期时间以增加安全性
- 阻止一次性电子邮件
- 验证来自 22,000 多个一次性电子邮件
- 检查域名是否有效且存在。
- 检查电子邮件语法
- 通过查询 DNS 记录检查 MX 记录的存在
- 密码策略
- 最小和最大密码长度
- 小写(a-z)和大写规则(A-Z)
- 数字字符规则(0-9)
- 符号规则(@、#、$ 等)
安装
- 通过 Composer 在项目目录中运行
composer require bymayo/porter
来安装 - 在 Craft 控制面板的
设置 > 插件
中启用/安装插件 - 自定义插件设置
您还可以通过在 Craft 管理控制面板的插件商店中搜索 Porter
来安装插件。
要求
- Craft CMS 5.x
- PHP 8.2
- MySQL(不支持 PostgreSQL)
如何使用
删除账户
允许用户通过前端表单删除自己的账户。要启用此功能,请转到 设置 > Porter
并切换 删除账户
字段。还可以编辑设置,例如用户在账户被删除之前需要输入的确认关键字。
将表单添加到模板的最快方法是使用 deleteAccountForm
方法
{{ craft.porter.deleteAccountForm() }}
默认情况下,它将添加一组以 porter__
为前缀的类,但您可以通过添加自定义参数来更改样式,例如如果您使用 Tailwind CSS
{{ craft.porter.deleteAccountForm(
{
buttonClass: 'bg-black text-white hover:bg-white hover:text-black',
buttonText: 'Delete Account'
}
) }}
如果您想要更多控制,可以从 bymayo/porter/src/templates/components/deleteAccountForm.twig
获取完整的模板。
使用此方法,您还可以使用 craft.porter.deleteAccountFormProperties()
获取默认模板属性,并从中获取特定属性
{% set formProperties = craft.porter.deleteAccountFormProperties() %}
{{ formProperties.buttonText }}
⚠️ 用户只能在用户或用户组上启用了“删除用户”权限设置的情况下才能删除自己的账户
⚠️ 管理员用户由于安全原因不能删除自己的账户
停用账户
允许用户通过前端表单停用自己的账户。要启用此功能,请转到 设置 > Porter
并切换 停用账户
字段。
将表单添加到模板的最快方法是使用 deactivateAccountForm
方法
{{ craft.porter.deactivateAccountForm() }}
默认情况下,它将添加一组以 porter__
为前缀的类,但您可以通过添加自定义参数来更改样式,例如如果您使用 Tailwind CSS
{{ craft.porter.deactivateAccountForm(
{
buttonClass: 'bg-black text-white hover:bg-white hover:text-black',
buttonText: 'Deactivate Account'
}
) }}
如果您想要更多控制,可以从 bymayo/porter/src/templates/components/deactivateAccountForm.twig
获取完整的模板
使用此方法,您还可以通过使用 craft.porter.deactivateAccountFormProperties()
并从其中拉取特定属性来获取默认模板属性
{% set formProperties = craft.porter.deactivateAccountFormProperties() %}
{{ formProperties.buttonText }}
⚠️ 为了安全原因,管理员用户不能停用自己的账户
魔法链接
让用户通过一封发到他们邮箱的链接快速登录。要启用此功能,请转到 设置 > Porter
并切换 魔法链接
字段。
将表单添加到模板的最快方法是使用 magicLinkForm
方法
{{ craft.porter.magicLinkForm() }}
默认情况下,它将添加一组以 porter__
为前缀的类,但您可以通过添加自定义参数来更改样式,例如如果您使用 Tailwind CSS
{{ craft.porter.magicLinkForm(
{
buttonClass: 'bg-black text-white hover:bg-white hover:text-black',
buttonText: 'Send Magic Link'
}
) }}
如果您想有更多控制权,您可以从 bymayo/porter/src/templates/components/magicLinkForm.twig
获取完整的模板
使用此方法,您还可以通过使用 craft.porter.magicLinkFormProperties()
并从其中拉取特定属性来获取默认模板属性
{% set formProperties = craft.porter.magicLinkFormProperties() %}
{{ formProperties.buttonText }}
⚠️ 为了安全原因,管理员用户不能使用魔法链接
阻止一次性电子邮件
阻止一次性邮箱和无效邮箱以减少垃圾邮件注册。要启用此功能,请转到 设置 > Porter
并切换 阻止烧毁器/一次性邮箱
字段。
您需要注册 https://verifier.meetchopra.com/ 来获取一个 免费 的API密钥。
支持
如果您有任何问题(当然不会有!),我会尽快回复。如果是破坏网站的大事,请联系Craft CMS Discord - @bymayo
路线图
- 小工具,小工具,小工具!谁不喜欢小工具。
- 为已删除用户提供内容迁移选项
- 为停用的用户执行垃圾收集的控制台命令
- 用户管理
- 在注册时让用户选择成员组的一种更干净、更安全的方式
- 更多的2FA功能(短信、认证应用等)