Файл: vendor/laravel/ui/auth-backend/VerifiesEmails.php
Строк: 99
<?php
namespace IlluminateFoundationAuth;
use IlluminateAuthAccessAuthorizationException;
use IlluminateAuthEventsVerified;
use IlluminateHttpJsonResponse;
use IlluminateHttpRequest;
trait VerifiesEmails
{
use RedirectsUsers;
/**
* Show the email verification notice.
*
* @param IlluminateHttpRequest $request
* @return IlluminateHttpRedirectResponse|IlluminateViewView
*/
public function show(Request $request)
{
return $request->user()->hasVerifiedEmail()
? redirect($this->redirectPath())
: view('auth.verify');
}
/**
* Mark the authenticated user's email address as verified.
*
* @param IlluminateHttpRequest $request
* @return IlluminateHttpJsonResponse|IlluminateHttpRedirectResponse
*
* @throws IlluminateAuthAccessAuthorizationException
*/
public function verify(Request $request)
{
if (! hash_equals((string) $request->route('id'), (string) $request->user()->getKey())) {
throw new AuthorizationException;
}
if (! hash_equals((string) $request->route('hash'), sha1($request->user()->getEmailForVerification()))) {
throw new AuthorizationException;
}
if ($request->user()->hasVerifiedEmail()) {
return $request->wantsJson()
? new JsonResponse([], 204)
: redirect($this->redirectPath());
}
if ($request->user()->markEmailAsVerified()) {
event(new Verified($request->user()));
}
if ($response = $this->verified($request)) {
return $response;
}
return $request->wantsJson()
? new JsonResponse([], 204)
: redirect($this->redirectPath())->with('verified', true);
}
/**
* The user has been verified.
*
* @param IlluminateHttpRequest $request
* @return mixed
*/
protected function verified(Request $request)
{
//
}
/**
* Resend the email verification notification.
*
* @param IlluminateHttpRequest $request
* @return IlluminateHttpJsonResponse|IlluminateHttpRedirectResponse
*/
public function resend(Request $request)
{
if ($request->user()->hasVerifiedEmail()) {
return $request->wantsJson()
? new JsonResponse([], 204)
: redirect($this->redirectPath());
}
$request->user()->sendEmailVerificationNotification();
return $request->wantsJson()
? new JsonResponse([], 202)
: back()->with('resent', true);
}
}