web.php
1Auth::routes(); //認証機能を使用する。
この記載がある場合、どこのページにアクセスしてもログインしてなかったら、ログイン画面が表示される仕様となっていると思います。
しかし、現在実装したいこととして、ある特定のページには、ログインなしでアクセスできるようにしたいです。
そういった実装方法はございますでしょうか。
ご回答よろしくお願いいたします。
web.php
1<?php 2 3use App\Laboratory; 4use Illuminate\Http\Request; 5 6Auth::routes(); //認証機能を使用する。 7 8Route::get('register/verify/{token}', 'Auth\RegisterController@showForm'); 9 10Route::post('register/main_check', 'Auth\RegisterController@mainCheck')->name('register.main.check'); 11Route::post('register/main_register', 'Auth\RegisterController@mainRegister')->name('register.main.registered'); 12 13Route::get('/home', 'LabController@index')->name('home'); 14 15Route::get('/review/{token}', 'LinkController@qr_to_add'); 16 17Route::group(['middleware' => ['web']], function () 18{ 19 20Route::post('register/pre_check', 'Auth\RegisterController@pre_check')->name('register.pre_check'); 21 22Route::get('/', 'LabController@index'); 23Route::post('/', 'LabController@index'); 24 25Route::get('/search_result', 'LabController@search'); 26 27Route::get('/area/{pre_name}','LabController@area_search'); 28 29Route::get('/faculty_result/{faculty}', 'LabController@faculty_result'); 30 31Route::post('/laboratories', 'LabController@store'); 32 33Route::post('/add/2', 'LabController@ret_univ'); 34 35Route::post('/laboratory/{laboratory}', 'LabController@store_evaluation'); 36 37Route::post('/', 'LabController@mv_add'); 38 39Route::post('/labedit/{lab_evaluation_id}','LabController@mv_update'); 40 41Route::post('/mypage/update', 'LabController@update'); 42 43Route::delete('/mypage/delete/{lab_evaluation_id}', 'LabController@delete'); 44 45Route::PUT('update',[ 46 'uses' => 'UserController@update', 47 'as' => 'update' 48]); 49 50 51Route::get('/add', 'LinkController@to_add'); 52 53Route::POST('/add_evaluation', 'LabController@add_evaluation'); 54 55Route::GET('/add_evaluation', function() 56{ 57 return view('add_evaluation'); 58}); 59 60Route::get('/add_evaluation/{lab_details_univ}/{lab_details_lab}', 'LinkController@to_add_evaluation'); 61 62Route::get('/univ/{univ_name}','LinkController@to_univ'); 63 64Route::get('/lab/{lab_details_univ}/{lab_details_lab}','LinkController@to_lab_details'); 65 66Route::get('/lab-evaluation/{lab_evaluation_details}','LinkController@to_lab_evaluation_details'); 67 68Route::get('/mypage','LinkController@to_mypage'); 69 70 71Route::get('/confirm_user',[ 72 'uses' => 'UserController@confirm_user', 73 'as' => 'confirm' 74]); 75 76Route::get('/edit_user','UserController@edit_user'); 77 78 79Route::get('/scraping','ScrapingController@scraping'); 80 81});
調べたところ、こちらのサイトで
Authenticate.php
1<?php 2 3namespace App\Http\Middleware; 4 5use Illuminate\Auth\Middleware\Authenticate as Middleware; 6 7class Authenticate extends Middleware 8{ 9 /** 10 * Get the path the user should be redirected to when they are not authenticated. 11 * 12 * @param \Illuminate\Http\Request $request 13 * @return string|null 14 */ 15 protected function redirectTo($request) 16 { 17 if (! $request->expectsJson()) { 18 return route('login'); 19 } 20 } 21} 22
ここで、認証のないアカウントのリダイレクト処理が行われていると書いていました。
Auth::route()からいろいろ経由してここに飛んでくるみたいなのですが、ここでの引数($request)とは一体なにを指すのでしょうか?
もし、Authenticate.phpで
protected function redirectTo($request) { if(ある特定のパスにアクセスがあったとき){ ある特定のページにリダイレクトする。 } //それ以外は elseif (! $request->expectsJson()) { return route('login'); } }
このような形で、ある特定ページにのみ認証なしでアクセスすることは可能でしょうか。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/01 04:52
2020/09/01 04:55 編集
2020/09/01 05:11 編集
2020/09/01 05:01
2020/09/01 05:04
2020/09/01 05:04
2020/09/01 05:07 編集
2020/09/01 05:07
2020/09/01 05:08
2020/09/01 05:10
2020/09/01 05:10
2020/09/01 05:11 編集
2020/09/01 05:14
2020/09/01 05:14
2020/09/01 05:18
2020/09/01 05:37
2020/09/01 05:43
2020/09/01 05:44
2020/09/01 05:47