使用 Fortify 的电子邮件确认 Laravel
Email confirmation using Fortify Laravel
我正在使用没有 Jetstream 的 Fortify 进行身份验证。我在注册时阅读了有关电子邮件验证的文档。但是当用户更改电子邮件地址时如何确认电子邮件地址呢?是不是这个包很难实现,或者没有现成的功能,我必须从头开始?
在用户面板中可以更改用户名、电子邮件、phone 和 img(我稍后会添加):
public function user_update(Request $request){
$user = Auth::user();
$user->name = $request->input('name')?$request->input('name'):Auth::user()->name;
$user->email = $request->input('email')?$request->input('email'):Auth::user()->email;
$user->phone = $request->input('phone')?$request->input('phone'):(Auth::user()->phone?Auth::user()->phone:NULL);
$user->update();
return redirect()->back();
}
路线:
Route::post('/user-panel/user-update', [AdminController::class, 'user_update'])->name('user_update');
当您在 fortify.php
配置文件中启用 Features::emailVerification()
功能时,您可以访问 verified
中间件,它确认 user
已通过断言验证了他们的电子邮件数据库中 user
的 email_verified_at
字段不为空。
因此,要触发 user
验证新电子邮件的要求(如果他们更改电子邮件),您要做的是将 email_verified_at
字段的值更改为 null
如果 user
更改了他们的电子邮件地址。
您可以自己写出这个逻辑,但是,Fortify 实际上提供了开箱即用的功能。在 app/Actions/Fortify
文件夹中,您会看到一个名为 UpdateUserProfileInformation.php
的文件,它完全满足您的要求并实现了整个电子邮件验证工作流程,包括生成一封新的验证电子邮件至 user
.
对于您对默认 user
.
结构所做的任何更改,您可能需要稍微更改此设置
此后,为了使用它,您需要做的就是适当地配置您的 <form>
。
<form action="{{ route('user-profile-information.update') }}" method="POST">
@csrf
@method("PUT")
</form>
如果您不喜欢命名路由,您可以使用 url
,但最终结果是一样的。
我正在使用没有 Jetstream 的 Fortify 进行身份验证。我在注册时阅读了有关电子邮件验证的文档。但是当用户更改电子邮件地址时如何确认电子邮件地址呢?是不是这个包很难实现,或者没有现成的功能,我必须从头开始?
在用户面板中可以更改用户名、电子邮件、phone 和 img(我稍后会添加):
public function user_update(Request $request){
$user = Auth::user();
$user->name = $request->input('name')?$request->input('name'):Auth::user()->name;
$user->email = $request->input('email')?$request->input('email'):Auth::user()->email;
$user->phone = $request->input('phone')?$request->input('phone'):(Auth::user()->phone?Auth::user()->phone:NULL);
$user->update();
return redirect()->back();
}
路线:
Route::post('/user-panel/user-update', [AdminController::class, 'user_update'])->name('user_update');
当您在 fortify.php
配置文件中启用 Features::emailVerification()
功能时,您可以访问 verified
中间件,它确认 user
已通过断言验证了他们的电子邮件数据库中 user
的 email_verified_at
字段不为空。
因此,要触发 user
验证新电子邮件的要求(如果他们更改电子邮件),您要做的是将 email_verified_at
字段的值更改为 null
如果 user
更改了他们的电子邮件地址。
您可以自己写出这个逻辑,但是,Fortify 实际上提供了开箱即用的功能。在 app/Actions/Fortify
文件夹中,您会看到一个名为 UpdateUserProfileInformation.php
的文件,它完全满足您的要求并实现了整个电子邮件验证工作流程,包括生成一封新的验证电子邮件至 user
.
对于您对默认 user
.
此后,为了使用它,您需要做的就是适当地配置您的 <form>
。
<form action="{{ route('user-profile-information.update') }}" method="POST">
@csrf
@method("PUT")
</form>
如果您不喜欢命名路由,您可以使用 url
,但最终结果是一样的。