2017-07-14 12 views
0

認証されていないの機能がLaravelでどのように機能しないのですか?ログイン試行が失敗したときにLaravelで認証されていない場合はログインページをリダイレクトしたい5.4

これはHandler.php

<?php 

namespace App\Exceptions; 

use Exception; use Illuminate\Auth\AuthenticationException; use 
    Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; 

class Handler extends ExceptionHandler { 
    /** 
    * A list of the exception types that should not be reported. 
    * 
    * @var array 
    */ 
    protected $dontReport = [ 
     \Illuminate\Auth\AuthenticationException::class, 
     \Illuminate\Auth\Access\AuthorizationException::class, 
     \Symfony\Component\HttpKernel\Exception\HttpException::class, 
     \Illuminate\Database\Eloquent\ModelNotFoundException::class, 
     \Illuminate\Session\TokenMismatchException::class, 
     \Illuminate\Validation\ValidationException::class, 
    ]; 

    /** 
    * Report or log an exception. 
    * 
    * This is a great spot to send exceptions to Sentry, Bugsnag, etc. 
    * 
    * @param \Exception $exception 
    * @return void 
    */ 
    public function report(Exception $exception) 
    { 
     parent::report($exception); 
    } 

    /** 
    * Render an exception into an HTTP response. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Exception $exception 
    * @return \Illuminate\Http\Response 
    */ 
    public function render($request, Exception $exception) 
    { 
     return parent::render($request, $exception); 
    } 

    /** 
    * Convert an authentication exception into an unauthenticated response. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Illuminate\Auth\AuthenticationException $exception 
    * @return \Illuminate\Http\Response 
    */ 
    protected function unauthenticated($request, AuthenticationException $exception) 
    { 
     if ($request->expectsJson()) { 
      return response()->json(['error' => 'Unauthenticated.'], 401); 
     } 

     return redirect()->guest(route('home')); 
    } 
} 

答えて

0

unauthenticated()が呼ばれています。ログインが失敗した場合、ユーザーはログインページにリダイレクトされ、デフォルトでログイン試行に関連するエラーが表示されます。この動作を変更するには、リダイレクトURLを編集するだけです(例:

protected function unauthenticated($request, AuthenticationException $exception 
{ 
    if ($request->expectsJson()) { 
     return response()->json(['error' => 'Unauthenticated.'], 401); 
    } 
    return redirect('home/dashboard'); 
} 
+0

ありがとうございます!私はすでに私の問題を解決しました。 – Rafael

関連する問題