8

當我用錯誤的憑據登錄我得到了正確的迴應。 當我用正確的憑證登錄登錄頁面重新加載302請求 但它從不重定向到統計頁面。 當我調試它,我發現代碼進入這個authinticate.php在中間件文件夾, 重定向到來賓登錄的狀態身份驗證重定向失敗

if (Auth::guard($guard)->guest()) { 
      if ($request->ajax() || $request->wantsJson()) { 
       return response('Unauthorized.', 401); 
      } else { 
       return redirect()->guest('login'); 
      } 
     } 

看到代碼: -

路線。 PHP

Route::get('login', '[email protected]'); 
Route::post('signin', '[email protected]'); 
Route::get('signout', '[email protected]'); 


Route::group(['prefix' => 'api'], function() { 
    Route::resource('authenticate', 'AuthenticateController', ['only' => ['index']]); 
    Route::post('authenticate', '[email protected]'); 
}); 

Route::group(['middleware' => ['web']], function() { 
    Route::auth(); 
    Route::get('/', '[email protected]'); 
    Route::get('/statistics', '[email protected]'); 

}); 

登錄控制器

public function index() { 

     return view('login'); 
    } 

    public function signin(Request $request) { 

     $errors = []; 
     $email=$request['email']; 
     $password= $request['password']; 
     $credentials = array('email' => $email, 'password' => $password); 

     if(Auth::attempt($credentials)) 
     { 
      return redirect('/statistics'); 


     } 
     return "bad request"; 

    } 
    public function signout() 
    { 
     Auth::logout(); 
     return redirect('/login'); } 

} 

統計控制器

class StatisticsController extends Controller { 
    public function __construct() 
    { 
        $this->middleware('auth'); 

    } 
    public function index() { 

    return view('statistics')->with($data); 
    } 

public function statistics() { 
     return view('statistics'); 

    } 



} 

Kernal.php請注意,有智威湯遜權威性庫我用它的寧靜認證,只有移動應用。

protected $middleware = [ 
     \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, 
    ]; 

    protected $middlewareGroups = [ 
     'web' => [ 
      \App\Http\Middleware\EncryptCookies::class, 
      \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
      \Illuminate\Session\Middleware\StartSession::class, 
      \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
      \App\Http\Middleware\VerifyCsrfToken::class, 
     ], 

     'api' => [ 
      'throttle:60,1', 
     ], 
    ]; 

    protected $routeMiddleware = [ 
     'auth' => \App\Http\Middleware\Authenticate::class, 
     'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 
     'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 
     'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 
     'jwt.auth' => 'Tymon\JWTAuth\Middleware\GetUserFromToken', 
     'jwt.refresh' => 'Tymon\JWTAuth\Middleware\RefreshToken' 
    ]; 

中間件/ authenticate.php

<?php 

namespace App\Http\Middleware; 

use Closure; 
use Illuminate\Support\Facades\Auth; 

class Authenticate 
{ 

    public function handle($request, Closure $next, $guard = null) 
    { 
     if (Auth::guard($guard)->guest()) { 
      if ($request->ajax() || $request->wantsJson()) { 
       return response('Unauthorized.', 401); 
      } else { 
       return redirect()->guest('login'); 
      } 
     } 

     return $next($request); 
    } 
} 
+0

我所有其他的股票Laravel 5.2應用程序?'app/Http/Middleware/Authenticate.php'沒有變化嗎?那麼'app/Http/Controllers/Auth'中的控制器呢? 你也可以在你的問題中清理你的英語嗎?至少要添加一些標點符號 - 很難跟隨一個場景結束和下一個開始。 – tremby

+0

問題不清楚! –

+0

你能告訴我\ App \ Http \ Middleware \ Authenticate文件嗎? –

回答

3

檢查cache.I有類似的問題,在這裏我失去了幾個小時,因此,這些地方的一些我做的步驟:

  • PHP工匠路線:明確
  • 清晰的瀏覽器緩存
  • 運行作曲家更新
  • 下載laravel的全新副本(新項目),然後慢慢地合併你的代碼塊到新項目
1

快速分析: 有您的驗證方法,或者你的控制器沒有問題。 問題在於,您沒有「/統計數據」 的路由並且在Laravel至少從第5版開始,您必須明確您的路線「PS:他們棄用了Route :: Controller ()」 順便說 Route::get('/', '[email protected]'); 指您的應用程序基本路線

解決方案 添加的統計數據路徑

Route::get('/statistics', '[email protected]'); 

例如。

+0

它在那裏,但我忘了把它放在這裏,因爲項目中有很多路線 反正它還沒有工作,重定向到登錄 我一直在嘗試幾個小時 感謝您的回答無論如何男人 –

1

您正在重定向到StatisticsController @ statistics,但在StatisticsController中沒有定義統計函數。

+0

有一種方法具有此名稱的控制器,問題發生在構造方法中,Auth在重定向時變成guest虛擬機 –