lundi 19 mars 2018

How to login different users or admins at a same time in laravel?

I want different admins to be able to log in at the same time in different browser windows and access their own data independently. I have implemented multiauth system using some internet references.

auth.php

<?php
return [
'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],
'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],

    'admin' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],
    'admin-api' => [
        'driver' => 'token',
        'provider' => 'admins',
    ],

    'sp' => [
        'driver' => 'session',
        'provider' => 'sps',
    ],
    'sp-api' => [
        'driver' => 'token',
        'provider' => 'sps',
    ],
],
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    'admins' => [
            'driver' => 'eloquent',
            'model' => App\Admin::class,
        ],
        'sps' => [
            'driver' => 'eloquent',
            'model' => App\Sp::class,
        ],
],
'passwords' => [
    'users' => [
        'provider' => 'users',
        'table' => 'password_resets',
        'expire' => 60,
    ],
    'admins' => [
        'provider' => 'admins',
        'table' => 'password_resets',
        'expire' => 15,
    ],
    'sps' => [
        'provider' => 'sps',
        'table' => 'password_resets',
        'expire' => 30,
    ],
],
];

Web.php :

Route::get('/admin/login', 'Auth\AdminLoginController@showLoginForm')->name('admin.login');
Route::post('/admin/login', 'Auth\AdminLoginController@login')->name('admin.login.submit');
Route::get('/admin', 'AdminController@index')->name('admin.dashboard');
Route::get('/admin/logout', 'Auth\AdminLoginController@adminlogout')->name('admin.logout');

Route::get('/admin/register', 'Auth\AdminRegisterController@showRegisterForm')->name('admin.register');
Route::post('/admin/register', 'Auth\AdminRegisterController@store')->name('admin.register.submit');

AdminController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

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

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('admin');
    }
}

AdminLoginController.php

<?php

namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;
class AdminLoginController extends Controller
{


  public function __construct()
  {
    $this->middleware('guest:admin', ['except' => ['adminlogout']]);

  }


  public function showLoginForm()
  {
    return view('auth.admin-login');
  }


  public function login(Request $request)
  {
    $this->validate($request,[
    'email' => 'required|email',
    'password' => 'required|min:6'
    ]);

    if (Auth::guard('admin')->attempt(['email'=>$request->email, 'password'=> $request->password], $request->remember))
    {
      return redirect()->intended(route('admin.dashboard'));
     }
      return redirect()->back()->withInput($request->only('email','remember'));
    }

    public function adminlogout()
    {
        Auth::guard('admin')->logout();
        return redirect('/');
    }

}

Please help me doing changes to my code so I can login Multiple Admins in different browser tabs independently at the same time. Thank You.



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/2G70QIk
via IFTTT

Aucun commentaire:

Enregistrer un commentaire