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);
 | 
						|
    }
 | 
						|
}
 |