質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

1101閲覧

Laravel5 ユーザ認証 ログアウト後にホーム画面に飛ばない

syougosty

総合スコア27

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

1クリップ

投稿2018/12/09 14:09

ログアウトの処理は実装できましたが、ログアウト後にhttp://localhost:8000/に飛ばされてしまいます。ログアウト後にhome画面に飛ぶにはどうしたらいいのうでしょうか?
また、ログアウトした状態でホーム画面にアクセスしようとすると、URLが自動的にhttp://localhost:8000/login になり、ログイン画面に飛ばされてしまいます。これもどうしたらいいのでしょうか?原因が分かりません。

現在の記述状況

HTML

1<a class="dropdown-item" href="{{ route('logout') }}" 2 onclick="event.preventDefault(); 3 document.getElementById('logout-form').submit();"> 4 {{ __('Logout') }} 5 </a> 6 <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;"> 7 8 </form>

ルーティング

PHP

1Route::get('bicycleapp/home', 'HomeController@index')->name('home')

HomeController

PHP

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6 7use Illuminate\Support\Facades\Auth; 8 9class HomeController extends Controller 10{ 11 /** 12 * Create a new controller instance. 13 * 14 * @return void 15 */ 16 public function __construct() 17 { 18 $this->middleware('auth'); 19 } 20 21 /** 22 * Show the application dashboard. 23 * 24 * @return \Illuminate\Http\Response 25 */ 26 public function index(Request $request) 27 { 28 $user = Auth::user(); 29 return view('home',['user'=>$user]); 30 } 31} 32

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/12/12 00:02

質問は編集できるので質問本文に追記してください。ただ、「解決済み」となっているようですが、結局どのように解決されたのでしょうか?
guest

回答1

0

ベストアンサー

homeはログイン中しか表示できないのでそれが正しい動作。

ログアウト後の動作はLoginControllerにloggedOut()を書いて上書き。
https://github.com/laravel/framework/blob/8da5b7ddedaaaf84b223b4ac3f632e45cf9aba0a/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php#L164
中身がないのはユーザー側で上書きする用

protected function loggedOut(Request $request) { // }

その前のlogout()がこれなのでloggedOut()でリダレイクト先を変える。

return $this->loggedOut($request) ?: redirect('/');

ログインしてない時のリダイレクト先は
app/Http/Middleware/Authenticate
ここを変えるだけ。

protected function redirectTo($request) { if (! $request->expectsJson()) { return route('login'); } }

投稿2018/12/09 15:54

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syougosty

2018/12/09 18:48 編集

なんかhttps://github.com/laravel/framework/blob/8da5b7ddedaaaf84b223b4ac3f632e45cf9aba0a/src/Illuminate/Foundation/AuthAuthenticatesUsers.php#L164 のLoginControllerと自分のLoginControllerが全く違うのでどう書いたらいいのか分かりません。一応make:authで生成したままです。 <?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Foundation\Auth\AuthenticatesUsers; class LoginController extends Controller { /* |-------------------------------------------------------------------------- | Login Controller |-------------------------------------------------------------------------- | | This controller handles authenticating users for the application and | redirecting them to your home screen. The controller uses a trait | to conveniently provide its functionality to your applications. | */ use AuthenticatesUsers; /** * Where to redirect users after login. * * @var string */ protected $redirectTo = '/hone'; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest')->except('logout'); } }
syougosty

2018/12/09 19:03 編集

質問に記述し忘れていましたが、ログアウト後に表示させるhome画面にはログインページに飛ぶボタンと、アカウント新規作成に飛ぶボタンが設けられています。そこからログイン画面にいきたいです。 HTML @if (Auth::check()) <p>USER: <a href="/bicycleapp/userPage">{{$user->name}}</a></p> @else <p><a href="/login">ログイン</a> <a href="/register">新規登録</a></p> @endif
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問