在 Laravel 6 中,身份验证登录默认不适用于新用户。这是因为 Laravel 6 中引入了一个名为 "Email Verification" 的功能,旨在确保用户在登录之前验证其电子邮件地址。
在 Laravel 6 中,新用户注册后,系统会自动发送一封包含验证链接的电子邮件给用户。用户需要点击该链接来验证其电子邮件地址。只有在验证成功后,用户才能使用其凭据进行登录。
这个功能的引入主要是为了提高系统的安全性和用户的信任度。通过验证用户的电子邮件地址,可以确保用户提供的是有效的联系方式,并减少了恶意用户注册的可能性。
对于开发者来说,可以通过 Laravel 提供的内置功能来实现这一功能。具体步骤如下:
User
模型中添加 MustVerifyEmail
接口。这个接口可以在 Authenticatable
trait 中找到。use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable implements MustVerifyEmail
{
// ...
}
AuthServiceProvider
的 boot
方法中调用 Auth::routes
方法,并传入 ['verify' => true]
参数。use Illuminate\Support\Facades\Auth;
public function boot()
{
$this->registerPolicies();
Auth::routes(['verify' => true]);
}
login.blade.php
视图文件中,可以添加一个判断,如果用户的邮箱未验证,则显示一个提示信息。@if (session('resent'))
<div class="alert alert-success" role="alert">
{{ __('A fresh verification link has been sent to your email address.') }}
</div>
@endif
@if (Auth::user() && !Auth::user()->hasVerifiedEmail())
<div class="alert alert-warning" role="alert">
{{ __('Please verify your email address.') }}
{{ __('If you did not receive the email') }},
<form class="d-inline" method="POST" action="{{ route('verification.resend') }}">
@csrf
<button type="submit" class="btn btn-link p-0 m-0 align-baseline">{{ __('click here to request another') }}</button>.
</form>
</div>
@endif
以上就是在 Laravel 6 中实现身份验证登录不适用于新用户的方法。通过这个功能,可以确保新用户在登录之前验证其电子邮件地址,提高系统的安全性和用户的信任度。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云