zazama/doubleoptin

一个用于实现GDPR法规要求的电子邮件双确认的Silverstripe 4模块。

安装: 147

依赖: 0

建议者: 0

安全: 0

星级: 2

关注者: 2

分支: 0

开放问题: 0

类型:silverstripe-vendormodule

1.0.3 2020-01-26 10:31 UTC

This package is auto-updated.

Last update: 2024-09-19 07:00:55 UTC


README

Packagist Version GitHub Scrutinizer code quality (GitHub/Bitbucket)

简介

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) {}
}