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

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

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

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

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

Laravel 5

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

Q&A

解決済

2回答

8171閲覧

Laravel 5.3でログイン後にリダイレクトするとセッションが消えてしまう

gomengo

総合スコア51

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

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

Laravel 5

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

0グッド

1クリップ

投稿2016/11/28 13:56

編集2016/11/29 10:31

Laravel 5.3でログイン後にログイン処理を行い、リダイレクトを行うと、セッションの認証情報が消えてしまい、ログイン画面へリダイレクトされてしまいます。

php

1 2<?php namespace App\Http\Controllers\Auth; 3 4use Auth; 5use Session; 6use App\User; 7use App\Http\Controllers\Controller; 8use Illuminate\Http\Request; 9use App\Http\Requests; 10use AuthenticatesUsers; 11 12class AuthController extends Controller { 13 /** 14 * Create a new controller instance. 15 * 16 * @return void 17 */ 18 public function __construct() 19 { 20 $this->middleware('guest'); 21 } 22 public function redirect(Request $request) { 23 if(!Session::get('password_validated') || !Session::get('id')) { 24 return redirect('/login'); 25 } 26 27 if(isset($_POST['token'])) { 28 $user = User::find(Session::get('id')) 29 //Trueだったらログインし、リダイレクト 30 if($user->Token($request->input('token'))) { 31 32 Auth::login($user); 33 //↑ログインし、/homeへリダイレクトの処理をしています。 34 return redirect()->intended('/home'); 35 36 } else { 37 return redirect('/auth/test')->withErrors([ 38 'token' => 'The token you entered is incorrect', 39 ]); 40 } 41 } 42 }

上記のソースのredirectの処理で、「Auth::login($user);」を実行し、次の処理で/homeへリダイレクトしています。
「Auth::login($user);」の直後の時点で、ログインしている状態であることは、確認しました。

リダイレクト先のコントローラは、下記となっています。

php

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

routes/web.phpは、下記の内容となっています。

php

1//省略しています。 2Route::group(['middleware' => 'web'], function () { 3 4 Route::auth(); 5 Route::get('/home', 'HomeController@index'); 6 //authのログイン認証チェック 7 Route::post('/auth/redirect', 'Auth\AuthController@redirect'); 8 9});

ログインの認証をし、domein/homeのへ遷移させたいと思っています。
現状は、domein/loginへ遷移してしまっているのですが、どのような原因が考えられるのでそうか。
routes/web.php の記載が誤っているのでしょうか。

よろしくお願いいたします。
ソースは、多少、省略しています。

後、ある処理をしてから、ログインをしたいので、こんなロジックになってます...

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

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

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

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

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

guest

回答2

0

自己解決

AuthController の中で、リダイレクトの処理をしているのですが、そのコントローラの中でモデルのメソッドを読んで、curlでjsonを取得しています。
そのcurlの処理が誤っており、変な動きをしていたようです。

その他に、コントローラやrouteの中のweb.phpなどのphpファイルの<?phpの前にスペースがあったり、ファイルをBOM付きで保存していても同じようなことがあるそうです。

→こちらを参照

投稿2016/12/01 05:53

編集2016/12/02 23:41
gomengo

総合スコア51

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

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

0

$user のデータを入れているテーブルのカラムはどうなっているでしょうか?

remember_token カラムがないとうまく動かない部分があったと思います。
(コードをあまり読めていないので、該当箇所でなかったらすみません。)

ドキュメント

投稿2016/11/29 08:11

tokutoku393

総合スコア54

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

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

gomengo

2016/11/29 09:28 編集

var_dump($user->remember_token); を出力すると、値が入っていて、usersのテーブル(色々カラムを追加はしています。)には、remember_tokenのカラムがあって、値が入っています。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問