Home > Mobile >  How can i redirect to dashboard after login in laravel 8
How can i redirect to dashboard after login in laravel 8

Time:11-17

Iam new in laravel and i want to redirect to rout (dashboard) after login, can i make it ?

iam tried many of methods but not work with me

this RedirectIfAuthenticated.php file

<?php

namespace App\Http\Middleware;

use Closure;
use Request;
use App\Providers\RouteServiceProvider;
use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */


public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {

            return redirect(RouteServiceProvider::DASH);
        }
        return $next($request);
    }


}

this LoginController.php file

<?php

namespace App\Http\Controllers\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');
    }

    
}

this RoutServerProvider file

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;

class RouteServiceProvider extends ServiceProvider
{
    /**
     * This namespace is applied to your controller routes.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $namespace = 'App\Http\Controllers';
    public const HOME = '/';
    public const DASH = '/dashboard';
    /**
     * Define your route model bindings, pattern filters, etc.
     *
     * @return void
     */
    public function boot()
    {
        //

        parent::boot();
    }

    /**
     * Define the routes for the application.
     *
     * @return void
     */
    public function map()
    {
        $this->mapApiRoutes();

        $this->mapWebRoutes();

        $this->mapSiteRoutes();

        $this->mapAdminRoutes();

        //
    }

    /**
     * Define the "web" routes for the application.
     *
     * These routes all receive session state, CSRF protection, etc.
     *
     * @return void
     */
    protected function mapWebRoutes()
    {
        Route::middleware('web')
             ->namespace($this->namespace)
             ->group(base_path('routes/web.php'));
    }

    protected function mapSiteRoutes()
    {
        Route::middleware('web')
             ->namespace($this->namespace)
             ->group(base_path('routes/site.php'));
    }

    protected function mapAdminRoutes()
    {
        Route::namespace($this->namespace)
             ->group(base_path('routes/admin.php'));
    }
    /**
     * Define the "api" routes for the application.
     *
     * These routes are typically stateless.
     *
     * @return void
     */
    protected function mapApiRoutes()
    {
        Route::prefix('api')
             ->middleware('api')
             ->namespace($this->namespace)
             ->group(base_path('routes/api.php'));
    }
}

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::group(['prefix' => 'dashboard','middleware' => 'guest:api'], function () {
    Route::get('/', 'HomeController@admin_index')->name('dashboard');
    Route::get('add', 'manage@AddArticle')->name('addarticle');
    Route::post('add', 'manage@AddArticle')->name('addpostarticle');
    Route::get('view', 'manage@view')->name('viewarticle');
    Route::get('read/{id}', 'manage@read')->name('read');
    Route::post('read/{id}', 'manage@read')->name('postread');
    Route::get('delete/{id}','manage@DeleteArticle');
    Route::post('edit/{id}', 'manage@Edit')->name('edit');
    Route::get('edit/{id}','manage@Edit');
    Route::get('articles','ArticleController@index');
    
});

CodePudding user response:

You can simpy redirect from your controller after login like This:

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, 'status' => 1])){
        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();
    }

}

CodePudding user response:

You have the redirect function which can be used on different ways :

return redirect()->back();
return redirect()->route('dashboard);

You can find all you need here : https://laravel.com/docs/8.x/redirects

  • Related