![](/img/trans.png)
[英]Laravel 5.7 email verification error, route [verification.verify] not defined
[英]After sending email verification, laravel returns to blank register page instead of email-verify route
我在我的項目中創建了一個注冊功能,用戶在注冊帳戶后會收到一個鏈接以驗證他們的電子郵件。
但是,在將這封郵件發送給用戶之后,laravel 會返回到 register 路由的空白頁面,而不是verify-email
路由。
這是我的 RegisterController 文件
class RegisterController extends Controller
{
use RegistersUsers;
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = '/login';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
public function showRegistrationForm()
{
return view('user.auth.register');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'first_name' => ['required', 'string', 'max:255'],
'last_name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed', 'regex:/^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$/'],
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\User
*/
protected function create(array $data)
{
return User::create([
'first_name' => $data['first_name'],
'last_name' => $data['last_name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
/**
* Handle a registration request for the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
// return redirect($this->redirectPath())->with('message', 'Your registration was successful! Login below');
}
}
這是我的routes\web.php
文件
Route::get('/', function () {
return view('user.auth.login');
});
// Routes for only authenticated users
Route::get('/user/verify-email', function () {
return view('user.auth.verify-email');
})->middleware('auth')->name('verification.notice');
Route::get('/user/verify/{id}/{hash}', function (EmailVerificationRequest $request) {
$request->fulfill();
return redirect('/account');
})->middleware(['auth', 'signed'])->name('verification.verify');
Route::post('/user/verify-email/verification-notification', function (Request $request) {
$request->user()->sendEmailVerificationNotification();
return back()->with('message', 'Verification link has been re-sent, Please check your email!');
})->middleware(['auth', 'throttle:6,1'])->name('verification.send');
//Route to logout authenticated user
Route::get('/account/logout', [AuthLoginController::class, 'logout'])->name('user.account.logout')->middleware(['auth']);
// Routes for only authenticated & verified users
Route::group(
[
'middleware' => ['auth', 'verified'],
],
function () {
// Route to main account dashboard of user
Route::get('/account', function () {
return view('user.account.index');
})->name('user.account.index');
// Route to account profile of user
Route::get('/account/profile', function () {
return view('user.account.profile');
})->name('user.account.profile');
}
);
// Laravel's route to login page and registration page
// Automatcially links to custom login page and registration page
Auth::routes();
這是我的verify-email
文件
<div class="my-auto">
<br><br>
@if (Session::has('message'))
<small class="alert alert-info">{{ Session::get('message') }}</small>
<br><br><br>
@endif
<h2 style="color:whitesmoke;font-size:30px">Email Verification Sent</h2>
<br>
<p>Please click on the link sent to your email, to complete your registration! </p>
<form action="{{ route('verification.send') }}" method="post">
@csrf
<br>
<button type="submit" style="color:whitesmoke;background:none;padding:15px; border:1px solid whitesmoke">Resend
Verification Link <i class="icon ion-md-send" style="padding-left: 5px;"></i></button>
<a href="{{ route('user.account.logout') }}" style="color:whitesmoke;background:none;padding:15px; border:1px solid whitesmoke">Logout <i class="icon ion-md-exit" style="padding-left: 5px;"></i></a>
</form>
</div>
在你的注冊
protected function create(array $data)
{
$user = User::create([
'first_name' => $data['first_name'],
'last_name' => $data['last_name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
Auth::login($user);
return redirect('verify-email');
}
不要忘記在用戶控制器中添加 Auth
在注冊函數中重定向以驗證路由
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
Auth::login($user);
return redirect(route('verification.notice'));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.