我在系统中有两种类型的用户(用户和管理员)。该用户拥有自己的表users
,对于admin用户,我正在维护一个名为admin的单独表。
我研究了一下,发现Laravel为用户提供了电子邮件验证。
我只想对管理员用户(而非普通用户)实施电子邮件验证。
如何为管理员表使用Laravel的Email Verification
?
答案 0 :(得分:0)
首先,如果需要SMTP服务器,则可以在mailtrap中注册一个免费帐户,mailtrap是一项用于登台和开发中的电子邮件测试的服务。
然后需要在.env
文件中用您的凭据添加以下详细信息
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=<YOUR_MAILTRAP_USERNAME>
MAIL_PASSWORD=<YOUR_MAILTRAP_PASSWORD>
MAIL_ENCRYPTION=tls
然后,您需要在用户模型中实施MustVerifyEmail
合同。打开App / User.php文件并进行如下更新:
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable implements MustVerifyEmail
{
use Notifiable;
protected $fillable = [
'name', 'email', 'password',
];
protected $hidden = [
'password', 'remember_token',
];
protected $casts = [
'email_verified_at' => 'datetime',
];
}
在web.php中添加路由。它将路由,例如电子邮件/验证和电子邮件/重新发送到我们的应用程序。
Auth::routes(['verify' => true]);
现在您可以使用Middlware实现一个功能,以在任何控制器上验证电子邮件。
class HomeController extends Controller
{
public function __construct()
{
$this->middleware('verified');
}
}