96 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| 
 | |
| namespace Illuminate\Foundation\Auth;
 | |
| 
 | |
| use Illuminate\Auth\Access\AuthorizationException;
 | |
| use Illuminate\Auth\Events\Verified;
 | |
| use Illuminate\Http\JsonResponse;
 | |
| use Illuminate\Http\Request;
 | |
| 
 | |
| trait VerifiesEmails
 | |
| {
 | |
|     use RedirectsUsers;
 | |
| 
 | |
|     /**
 | |
|      * Show the email verification notice.
 | |
|      *
 | |
|      * @param  \Illuminate\Http\Request  $request
 | |
|      * @return \Illuminate\Http\RedirectResponse|\Illuminate\View\View
 | |
|      */
 | |
|     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  \Illuminate\Http\Request  $request
 | |
|      * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
 | |
|      *
 | |
|      * @throws \Illuminate\Auth\Access\AuthorizationException
 | |
|      */
 | |
|     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  \Illuminate\Http\Request  $request
 | |
|      * @return mixed
 | |
|      */
 | |
|     protected function verified(Request $request)
 | |
|     {
 | |
|         //
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Resend the email verification notification.
 | |
|      *
 | |
|      * @param  \Illuminate\Http\Request  $request
 | |
|      * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
 | |
|      */
 | |
|     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);
 | |
|     }
 | |
| }
 |