zazama / doubleoptin
一个用于实现GDPR法规要求的电子邮件双确认的Silverstripe 4模块。
1.0.3
2020-01-26 10:31 UTC
Requires
- silverstripe/admin: ^1.0
- silverstripe/framework: ^4.0
- silverstripe/userforms: ^5.0
This package is auto-updated.
Last update: 2024-09-19 07:00:55 UTC
README
简介
DoubleOptIn扩展Silverstripe和Userforms以实现双确认解决方案,这是新GDPR法规通常要求的功能。它将为Userforms添加一个复选框,在提交/查看/发送电子邮件之前发送验证电子邮件。
要求
- silverstripe/framework ^4.0
- silverstripe/admin ^1.0
- silverstripe/userforms ^5.0
此模块仅在最新的4.4版本上进行过测试。
安装
composer require zazama/doubleoptin
YAML配置
# set a route for verification links SilverStripe\Control\Director: rules: 'verify': Zazama\DoubleOptIn\Controllers\VerificationController Zazama\DoubleOptIn\Models\EmailVerification: url_segment: 'verify' # subject is ignored with Userforms, because that's set in admin frontend. subject: 'Email Verification' # set sender for the verification email Zazama\DoubleOptIn\Services\EmailSender: email_sender: 'example@yourdomain.com'
Userforms设置
- 要在一个Userforms页面上启用DoubleOptIn,请转到配置选项卡并点击“启用双确认”
- 选择双确认电子邮件字段(也是必需的)
- 输入您的验证电子邮件主题。
与普通表单的用法
use Zazama\DoubleOptIn\Models\EmailVerification; public function handleFormVerification($data, $subject) { $email = $data['email']; $emailVerification = EmailVerification::create(); $emailVerification->init($email); $emailVerification->send($subject); $emailVerification->write(); } public function tokenChecks() { EmailVerification::IsSuccess($token); //bool EmailVerification::IsAlreadyVerified($token); //bool EmailVerification::IsBadToken($token); //bool EmailVerification::TokenType($token); //string }
模板
以下模板可以被覆盖
- Zazama\DoubleOptIn\Layout\Verification_Success
- Zazama\DoubleOptIn\Layout\Verification_BadToken
- Zazama\DoubleOptIn\Layout\Verification_AlreadyVerified
- Zazama\DoubleOptIn\Email\Email
如果您只想更改文本,可以更改语言字符串。
扩展钩子
提供扩展钩子以使用验证控制器。
class x extends Zazama\DoubleOptIn\Controllers\VerificationController { # called when successfully verified public function updateSuccess($token) {} # called when verification token is wrong / not provided public function updateBadToken() {} # called when verification token is already verified public function updateAlreadyVerified() {} } class y extends Zazama\DoubleOptIn\Models\EmailVerification { # change generated token public function updateGenerateToken($token) {} # change link public function updateLink($link) {} # change subject public function updateSubject($subject) {} }