Home > Net >  Prevent my website root page redirect to login in laravel 8
Prevent my website root page redirect to login in laravel 8

Time:11-20

when iam logout my website root (127.0.0.1:8000) redirect to login page (127.0.0.1:8000/login) and can't open it. in this link (127.0.0.1:8000) my frontend pages and must be access without any login and I want to be available to all users.

My website pages that i want it to available to all called by routes bellow

Route::get('/', 'HomeController@index')->name('home');
Route::get('/read/{id}', 'HomeController@read')->name('read');
Route::post('/read/{id}', 'HomeController@read')->name('postread');

and my admin routes working successfuly under routes group (dashboard).

My routs file site.php

<?php
use App\Article;
use App\Http\Controllers;
/*
|--------------------------------------------------------------------------
| Site Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Auth::routes();

Route::get('/', 'HomeController@index')->name('home');
Route::get('/read/{id}', 'HomeController@read')->name('read');
Route::post('/read/{id}', 'HomeController@read')->name('postread');
Route::group(['prefix' => 'dashboard','middleware' => 'guest:api'], function () {
    Route::get('/', 'HomeController@admin_index')->name('dashboard');
    Route::get('/add', 'HomeController@AddArticle')->name('addarticle');
    Route::post('/add', 'HomeController@AddArticle')->name('addpostarticle');
    Route::get('/delete/{id}','HomeController@DeleteArticle');
    Route::post('/edit/{id}', 'HomeController@Edit')->name('edit');
    Route::get('/edit/{id}','HomeController@Edit'); 
});

My LoginController

<?php

namespace App\Http\Controllers\Auth;
use Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
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 = 'dashboard';
    

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
        
    }

    public function login(Request $request){

        $message = array(
            'required.email'    =>  'This is required',
            'required.password' =>  'This is required',
        );
        $this->validate($request,[
            'email' =>  'required',
            'password'  =>  'required',
        ],$message);
    
        $email = $request->email;
        $pass = $request->password;
    
        if(Auth::attempt(['email' => $email, 'password' => $pass])){
            //Session::flash('success','Welcome '.Auth::user()->name);
            return redirect()->route('dashboard');
        }else{
            Session::flash('error','Sorry! Try Again. It seems your login credential is not 
correct.');
            return redirect()->back();
        }
    
    }


}

HomeController.php

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Article;
use App\Comment;
use Illuminate\Support\Facades\Auth;

class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {

        $articles = Article::all();
        $ar=Array('articles'=>$articles);
        return view('site.home',$ar);
    }


    public function admin_index()
    {

        $articles = Article::all();
        $ar=Array('articles'=>$articles);
        return view('admin.home',$ar);
    }


    
    public function AddArticle(Request $request){
        if($request ->isMethod('post')){
           $ar = new Article();
           $file_extension = $request -> image -> getClientOriginalExtension();
           $file_name = time().'.'.$file_extension;
           $path = "upload";
           $request -> image -> move($path,$file_name);
           $ar->title=$request->input('title');
           $ar->body=$request->input('body');
           $ar->image=$file_name;
           $ar->user_id=Auth::user()->id;
           $ar->save();
           return redirect("dashboard");
        }
        return view('admin.AddArticle');
    }


    public function read(Request $request,$id){
        if($request ->isMethod('post')){
            $ar = new Comment();
            $ar->Comment=$request->input('body');
            $ar->article_id=$id;
            $ar->save();
         }
        $article = Article::find($id);
        $ar=Array('article'=>$article);
        return view('site.read',$ar);
    }
    public function DeleteArticle($id){
        $article = Article::find($id);
        $article->delete();
        return redirect("dashboard");
    }
    public function Edit(Request $request,$id){
        if($request ->isMethod('post')){
            $ar = Article::find($id);

        if($request->hasFile('image')) {
            $file_extension = $request -> image -> getClientOriginalExtension();
            $file_name = time().'.'.$file_extension;
            $path = "upload";
           
                $request -> image -> move($path,$file_name);

                $ar->image=$file_name;
                }
            $ar->title=$request->input('title');
            $ar->body=$request->input('body');

            $ar->user_id=Auth::user()->id;
            
            $ar->save();
            return redirect("dashboard");
        }else{
            $article = Article::find($id);
            $ar=Array('article'=>$article);
            return view('admin.edit',$ar);
        }
    }

}

CodePudding user response:

Return to login page because there is middleware

Just edit HomeController

...
public function __construct()
{
   $this->middleware('auth')->except('index');
}
...

->except() method will exclude functions from auth middleware

  • Related