私はLaravelフレームワークの絶対初心者です。 私はミドルウェアの問題を扱っています。Laravel 5.0 ::ミドルウェアの問題(ERR_TOO_MANY_REDIRECTSエラー)
下記のAdminController.phpのauthenticate.phpと__construct関数を使用すると、ログインできず、ERR_TOO_MANY_REDIRECTSエラーを処理する必要があります。
誰もこの種の問題に遭遇しましたか? この問題を解決するためのアドバイスはありますか?
英語は私の最初の言語ではありませんので、この投稿が理にかなっていない場合や、より多くの情報が必要な場合は、コメントを残してください! アドバイスをいただければ幸いです!前もって感謝します!
Authenticate.php
public function handle($request, Closure $next){
if ($this->auth->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
}
else {
return redirect()->guest('auth/login');
}
}
if ($this->whoIsLoggedIn() == 'instructor'){
return redirect('/instructor/home');
} elseif ($this->whoIsLoggedIn() == 'admin') {
return redirect('/admin/home');
} elseif ($this->whoIsLoggedIn() == 'student') {
return redirect('/student/home');
} elseif($this->whoIsLoggedIn() == 'unknown'){
return redirect('/auth/login');
}
return $next($request);
}
public function whoIsLoggedIn(){
$identity = '';
foreach (\Auth::user()->roles as $role) {
if ($role->name == 'admin') {
return $identity = 'admin';
} else if ($role->name == 'instructor') {
return $identity = 'instructor';
} else if ($role->name == 'student'){
return $identity = 'student';
} else {
return $identity = 'unknown';
}
}
}
AdminController.php
public function __construct(){
$this->middleware('auth');
}
ご意見ありがとうございます、Denis。しかし、authenticate.phpはすでに$ next($ request)を返していたので、私は謝罪する必要があります。リダイレクト条件の後に...私はPHPファイル内のすべてのコードをコピーできませんでした... – ILoveBaymax
とにかく届かない場合、問題はありません - あなたの認証されたユーザーは常に何度もリダイレクトされます。このリダイレクトロジックは、ログイン後に一度だけ発生します。 –
あなたのアドバイスを見て、AuthControllerが継承しているコードを編集しました。デニスさんありがとう! – ILoveBaymax