meness/verifi

用于处理电子邮件验证的Laravel扩展包。

该包的规范仓库似乎已消失,因此该包已被冻结。

1.0.9 2017-05-30 00:00 UTC

This package is not auto-updated.

Last update: 2021-02-12 05:49:09 UTC


README

Travis Packagist Packagist Packagist

用于处理电子邮件验证的Laravel扩展包。

它受到基于加密的密码重置(https://github.com/laravel/framework/pull/17499)和josiasmontag的电子邮件验证包(https://github.com/josiasmontag/laravel-email-verification)的启发。

  • 基于加密的电子邮件验证。无需在数据库中存储临时令牌!
  • 基于事件的全局。无需覆盖您的 register() 方法。
  • 使用Laravel 5.4通知系统。
  • 您可以自由创建任何您喜欢的路由。
  • 随时重新发送验证电子邮件。
  • 自定义电子邮件通知。

安装

通过Composer安装此包。

composer require meness/verifi

您必须安装服务提供者和外观。

'providers' => [
    ...
    Meness\Verifi\Providers\VerifiServiceProvider::class,
];

'aliases' => [
    ...
    'Verifi' => Meness\Verifi\Facades\Verifi::class,
];

提供迁移来向现有的 users 表添加 is_email_verified 列,您可以发布迁移。

php artisan vendor:publish --provider="Meness\Verifi\Providers\VerifiServiceProvider" --tag="migrations"

如果您发布了迁移,请记住运行以下命令。

php artisan migrate

还提供了一个配置文件,您可以发布配置。

php artisan vendor:publish --provider="Meness\Verifi\Providers\VerifiServiceProvider" --tag="config"

配置

expiration

1440(分钟,24小时)默认设置。

verify_route

/verify默认设置。如果使用不同的验证路由,请更改该值。

send_notifications

true默认设置。让此包在注册完成后自动发送电子邮件通知。

如何使用(分步指南)

第一步

  1. User 模型必须实现 Meness\Verifi\Entities\Traits\Contracts\Verifi 接口。

  2. 如果您要使用默认通知,请添加 Meness\Verifi\Entities\Traits\VerifiTrait 作为特性。

class User extends Authenticatable implements Verifi
{
    use Notifiable, VerifiTrait;
}

注意: 一些方法尚未实现,您必须自行实现。

第二步

您可以自由创建路由,因为此包中没有提供默认路由。

Route::get('/verify', 'Auth\RegisterController@verify');
Route::get('/resend', 'Auth\RegisterController@resend');

注意: 如果不使用默认路由,请记得更改 verify_route 的值。

第三步(可选)

创建必要事件的监听器。此包提供了三个事件:InvalidCredentialsVerificationSentVerified

第四步

提供了两种方法:verify()resend()

注意:注册完成后,如果设置了 send_notificationstrue,则会发送一封邮件验证,因此您不需要手动操作。

verify()

Verifi::verify() 需要一个请求对象和一个可选的回调。它验证请求中提供的凭据。

Verifi::verify(request(), function ($user) {

	if (is_null($user)) {
		// Invalid credentials provided
	} else {
		// Verified
	}
});

resend()

Verifi::resend() 需要一个用户模型对象和一个可选的回调。它将验证邮件发送到指定的用户。

Verifi::resend($user, function ($user) {
	// Resent successfully
});

第五步(可选)

存在一个名为 IsEmailVerified 的中间件,用于确定用户的电子邮件地址是否已验证。

$routeMiddleware = [
    ...
    'isEmailVerified' => \Meness\Verifi\Http\Middleware\IsEmailVerified::class,
];

变更日志

有关最近更改的更多信息,请参阅 发行版

贡献

有关详细信息,请参阅 CONTRIBUTING

致谢

许可证

Verifi 是开源软件,许可证为 MIT 许可证