Laravel: Как сделать правильное перенаправление после входа в мультиавтор - PullRequest
0 голосов
/ 19 октября 2018

У меня проблема с мульти-аутентификацией в laravel

Я делаю маршрут

/admin/login

, и мне нужно просто войти в систему с правами администратора на этом маршруте и перенаправить на /admin и, если пользователь входит в системув нем я перенаправлю на /home и сделаю сообщение: вы не можете получить доступ к этой ссылке из-за вашего пользователя, а не администратора

Проблема при входе на /admin/login перенаправление на /home как пользователя, ноЯ должен быть перенаправлен /admin

зная администратор и пользователя одну и ту же таблицу в базе данных (пользователь) exit col boolean isAdmin (1 for admin and 0 for user)

ЗНАНИЕ Я делаю Auth\AdminLoginController выход:

 protected $redirectTo = '/admin';
public function __construct()
{
    $this->middleware('guest:admin')->except('logout');
}

 public function Loginadmin()
{
    return view('auth.login');
}

public function adminLogin(Request $request)
{
    $this->validate($request, [
        'email'   => 'required|email',
        'password' => 'required|min:6'
    ]);
          if (Auth::guard('admin')->Where("isAdmin" , 1)->attempt(['email' => $request->email, 'password' => $request->password, 'isAdmin' => 1], $request->get('remember'))) {
        return redirect()->intended('/admin');
    }
    return back()->withInput($request->only('email', 'remember'));
}

1 Ответ

0 голосов
/ 19 октября 2018

Вы должны создать Middleware.Ваш маршрут написан таким образом.

Route::get('Dashboard', 'admin\DashboardController@index')->middleware('adminUser');

Или запишите его в функции конструктора

Научитесь создавать Middleware

Его структура

<?php

namespace App\Http\Middleware;

use Closure;
use Auth;
class adminUser
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
      if(Auth::check())
      {
        $userm = auth()->user();
        if($userm->isadmin!=1)
        {
          return redirect('');
        }
        return $next($request);
      }
      else
        return redirect('');
    }
}

Необходимо создать значение для определения уровня доступа в пользовательской таблице

...