Я пытаюсь применить проверку электронной почты для пользовательского пользователя (job_seeker). Пока что я сделал следующее: создал маршруты проверки для охраны 'job_seeker'. переписать метод show в контроллере верификации новым представлением. Реализовано новое уведомление в модели Job_Seeker. Создал, зарегистрировал и применил новое промежуточное ПО под названием «job_seeker.verified»
Я попробовал это решение Применить Laravel 5.7 MustVerifyEmail в системе множественной аутентификации
После этой процедуры яобнаруживает, что он отправляет уведомление по электронной почте и показывает страницу подтверждения, но когда я нажимаю на кнопку «Подтвердить адрес электронной почты» в письме, это не обновляет базу данных с отметкой времени и не возвращает меня на страницу перенаправления. Вместо этого я получаю "Страница 403
Route::get('/email/verify','job_seeker\Job_Seeker_Verification@show')->name('job_seeker/verify/notice');
Route::get('/email/verify/{id}','job_seeker\Job_Seeker_Verification@verify')->name('job_seeker.verification.verify');
контроллер регистра для job_seeker
$job_seeker=Job_Seeker::create([
'username' => $request['username'],
'email' => $request['email'],
'city'=> $request['city'],
'categories' => $request['categories'],
'password' => Hash::make($request['password']),
]);
$job_seeker->notify(new Job_seeker_Email_Verification($job_seeker));
if (Auth::guard('job_seeker')->attempt(['email' => $request->email,
'password' => $request->password], $request->remember)) {
// if successful, then redirect to their intended location
return redirect()->intended(route('job_seeker/jobs'));
}
контроллер проверки для job_seeker
public function __construct()
{
$this->middleware('auth:job_seeker');
$this->middleware('signed')->only('verify');
$this->middleware('throttle:6,1')->only('verify', 'resend');
}
public function show(Request $request)
{
return $request->user()->hasVerifiedEmail()
? redirect($this->redirectPath())
: view('job_seeker.verify');
}
страница назначения
public function __construct()
{
$this->middleware('auth:job_seeker');
$this->middleware('job_seeker_verified');
}
public function show_jobs(){
return view('job_seeker.job_listing');
}
электронная почта, полученная от
Если у вас возникли проблемы с нажатием кнопки «Подтвердить адрес электронной почты», скопируйте и вставьте приведенный ниже URL в свой веб-браузер: http://127.0.0.1:8000/job_seeker/email/verify/6?expires=1571589961&signature=0ac1b0ed2f8463094006ee3af2537771889c8fd598ad119c7be77c2b44e857d0
EnsureEmailIsПодлинное промежуточное ПО
$guards = array_keys(config('auth.guards'));
foreach($guards as $guard) {
if ($guard == 'job_seeker') {
if (Auth::guard($guard)->check()) {
if (! Auth::guard($guard)->user() ||
(Auth::guard($guard)->user() instanceof MustVerifyEmail &&
! Auth::guard($guard)->user()->hasVerifiedEmail())) {
return $request->expectsJson()
? abort(403, 'Your email address is not verified.')
: Redirect::route('job_seeker/verify/notice');
}
}
}
elseif ($guard == 'web') {
if (Auth::guard($guard)->check()) {
if (! Auth::guard($guard)->user() ||
(Auth::guard($guard)->user() instanceof MustVerifyEmail &&
! Auth::guard($guard)->user()->hasVerifiedEmail())) {
return $request->expectsJson()
? abort(403, 'Your email address is not verified.')
: Redirect::route('verification.notice');
}
}
}
}