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

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

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

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

PHP

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

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Q&A

2回答

2313閲覧

Laravelでの新規登録後の自動ログインが機能しない

bigbox267

総合スコア31

Laravel

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

PHP

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

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

0グッド

0クリップ

投稿2020/08/17 04:25

編集2020/08/22 04:52

Laravelで新規登録した後に自動でリダイレクト先にリダイレクトしてほしいのですが、ログイン画面にリダイレクトされてしまいます。

新規登録時に自動でログインさせるにはどのようにすればよいでしょうか?

PHP

1<?php 2 3namespace Illuminate\Foundation\Auth; 4 5use Illuminate\Auth\Events\Registered; 6use Illuminate\Http\Request; 7use Illuminate\Http\Response; 8use Illuminate\Support\Facades\Auth; 9 10trait RegistersUsers 11{ 12 use RedirectsUsers; 13 14 /** 15 * Show the application registration form. 16 * 17 * @return \Illuminate\View\View 18 */ 19 public function showRegistrationForm() 20 { 21 return view('auth.register'); 22 } 23 24 /** 25 * Handle a registration request for the application. 26 * 27 * @param \Illuminate\Http\Request $request 28 * @return \Illuminate\Http\Response 29 */ 30 public function register(Request $request) 31 { 32 $this->validator($request->all())->validate(); 33 34 event(new Registered($user = $this->create($request->all()))); 35 36 $this->guard()->login($user);//書いてある 37 38 39 /* 40 if($this->guard()->check()){ 41 echo('success');//←successと表示される 42 dd($this->redirectPath());//リダイレクトしてほしいパスが表示される 43 } 44 */ 45 46 return $this->registered($request, $user) 47 ?: redirect($this->redirectPath()); 48 49 } 50 51 /** 52 * Get the guard to be used during registration. 53 * 54 * @return \Illuminate\Contracts\Auth\StatefulGuard 55 */ 56 protected function guard() 57 { 58 return Auth::guard(); 59 } 60 61 /** 62 * The user has been registered. 63 * 64 * @param \Illuminate\Http\Request $request 65 * @param mixed $user 66 * @return mixed 67 */ 68 protected function registered(Request $request, $user) 69 { 70 // 71 } 72} 73

PHP

1<?php 2 3namespace App\Http\Middleware; 4 5use Closure; 6use Illuminate\Support\Facades\Auth; 7use App\Providers\RouteServiceProvider; 8 9class RedirectIfAuthenticated 10{ 11 /** 12 * Handle an incoming request. 13 * 14 * @param \Illuminate\Http\Request $request 15 * @param \Closure $next 16 * @param string|null $guard 17 * @return mixed 18 */ 19 public function handle($request, Closure $next, $guard = null) 20 { 21 if (Auth::guard()->check()) return redirect(RouteServiceProvider::HOME); 22 if (Auth::guard('company')->check()) return redirect(RouteServiceProvider::COMPANIES_HOME); 23 24 return $next($request); 25 } 26} 27

追記

phpバージョン

$ php -v PHP 7.4.6 (cli) (built: May 12 2020 11:38:54) ( ZTS Visual C++ 2017 x64 ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies

Laravelバージョン

$ php artisan --version Laravel Framework 7.0.0

認証機能は独自のものではなくlaravel-uiを使用して作りましたが、マルチ認証のためhttps://reffect.co.jp/laravel/laravel-multi-authentication-understand
こちらを参考に各ファイルは変更してあります。

追記
こちらが各controllerになります。リダイレクト先はRouteServiceProviderで指定しています。

PHP

1<?php 2 3namespace App\Http\Controllers\Auth; 4 5use App\Http\Controllers\Controller; 6use Illuminate\Foundation\Auth\AuthenticatesUsers; 7use App\Providers\RouteServiceProvider; 8 9class LoginController extends Controller 10{ 11 /* 12 |-------------------------------------------------------------------------- 13 | Login Controller 14 |-------------------------------------------------------------------------- 15 | 16 | This controller handles authenticating users for the application and 17 | redirecting them to your home screen. The controller uses a trait 18 | to conveniently provide its functionality to your applications. 19 | 20 */ 21 22 use AuthenticatesUsers; 23 24 /** 25 * Where to redirect users after login. 26 * 27 * @var string 28 */ 29 protected $redirectTo = RouteServiceProvider::HOME; 30 31 /** 32 * Create a new controller instance. 33 * 34 * @return void 35 */ 36 public function __construct() 37 { 38 $this->middleware('guest')->except('logout'); 39 } 40} 41

PHP

1<?php 2 3namespace App\Http\Controllers\Auth; 4 5use App\User; 6use App\Http\Controllers\Controller; 7use Illuminate\Support\Facades\Hash; 8use Illuminate\Support\Facades\Validator; 9use Illuminate\Foundation\Auth\RegistersUsers; 10use App\Providers\RouteServiceProvider; 11 12class RegisterController extends Controller 13{ 14 /* 15 |-------------------------------------------------------------------------- 16 | Register Controller 17 |-------------------------------------------------------------------------- 18 | 19 | This controller handles the registration of new users as well as their 20 | validation and creation. By default this controller uses a trait to 21 | provide this functionality without requiring any additional code. 22 | 23 */ 24 25 use RegistersUsers; 26 27 /** 28 * Where to redirect users after registration. 29 * 30 * @var string 31 */ 32 protected $redirectTo = RouteServiceProvider::HOME; 33 34 /** 35 * Create a new controller instance. 36 * 37 * @return void 38 */ 39 public function __construct() 40 { 41 $this->middleware('guest'); 42 } 43 44 /** 45 * Get a validator for an incoming registration request. 46 * 47 * @param array $data 48 * @return \Illuminate\Contracts\Validation\Validator 49 */ 50 protected function validator(array $data) 51 { 52 53 $validate = Validator::make($data, [ 54 'screen_name' => ['required', 'string', 'max:255', 'unique:users'], 55 'name' => ['required', 'string', 'max:255'], 56 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 57 'password' => ['required', 'string', 'min:6', 'confirmed'], 58 ]); 59 60 //dd($validate->errors()->all()); 61 62 return $validate; 63 } 64 65 /** 66 * Create a new user instance after a valid registration. 67 * 68 * @param array $data 69 * @return \App\User 70 */ 71 protected function create(array $data) 72 { 73 $count = \App\User::all()->count(); 74 $count = $count + \App\Company::all()->count() +1; 75 76 $user= User::create([ 77 'id' => $count, 78 'screen_name' => $data['screen_name'], 79 'name' => $data['name'], 80 'profile_image' => '/sample/user.png', 81 'back_image' => '/sample/noimage.jpg', 82 'email' => $data['email'], 83 'password' => Hash::make($data['password']), 84 ]); 85 86 return $user; 87 88 } 89} 90

PHP

1<?php 2 3namespace App\Providers; 4 5use Illuminate\Support\Facades\Route; 6use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; 7 8class RouteServiceProvider extends ServiceProvider 9{ 10 /** 11 * This namespace is applied to your controller routes. 12 * 13 * In addition, it is set as the URL generator's root namespace. 14 * 15 * @var string 16 */ 17 protected $namespace = 'App\Http\Controllers'; 18 19 public const HOME = '/home'; 20 public const COMPANIES_HOME = '/company/home'; 21 22 /** 23 * Define your route model bindings, pattern filters, etc. 24 * 25 * @return void 26 */ 27 public function boot() 28 { 29 // 30 31 parent::boot(); 32 } 33 34 /** 35 * Define the routes for the application. 36 * 37 * @return void 38 */ 39 public function map() 40 { 41 $this->mapApiRoutes(); 42 43 $this->mapWebRoutes(); 44 45 // 46 } 47 48 /** 49 * Define the "web" routes for the application. 50 * 51 * These routes all receive session state, CSRF protection, etc. 52 * 53 * @return void 54 */ 55 protected function mapWebRoutes() 56 { 57 Route::middleware('web') 58 ->namespace($this->namespace) 59 ->group(base_path('routes/web.php')); 60 } 61 62 /** 63 * Define the "api" routes for the application. 64 * 65 * These routes are typically stateless. 66 * 67 * @return void 68 */ 69 protected function mapApiRoutes() 70 { 71 Route::prefix('api') 72 ->middleware('api') 73 ->namespace($this->namespace) 74 ->group(base_path('routes/api.php')); 75 } 76} 77

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

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

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

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

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

guest

回答2

0

修正いただきありがとうございます。

見たところ、Middlewareの方は修正しているようですが、
Controllerの方の修正しておりますでしょうか??

app\Http\Controllers\Authに該当するファイルがあると思いますので、一度ご確認いただけますでしょうか?

投稿2020/08/22 02:32

Suumon

総合スコア211

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

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

0

質問があります。
①PHPのバージョンはいくつでしょうか?
②Laravelのバージョンはいくつでしょうか?
③ログイン機能は独自実装によるものでしょうか?それともライブラリ等を使用して作成したものでしょうか?

投稿2020/08/22 00:47

編集2020/08/22 02:28
Suumon

総合スコア211

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問