Laravel:如何在multiauth登录后正确重定向到

时间:2018-10-19 10:45:03

标签: php laravel authentication middleware

我在laravel中进行多重身份验证时遇到问题

我要路线

/admin/login

,我只需要在此路由中进行管理员登录,然后重定向到/admin,如果用户登录,我将重定向到/home,使味精由于您的用户而无法访问此链接,不是管理员

我登录/admin/login并以用户身份重定向到/home时出现问题,但我需要重定向/admin

在数据库(用户)中知道管理员和用户相同的表退出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 :(得分:0)

您必须创建一个中间件。你的溃败就是这样写的。

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

或在构造函数中编写

Learn to build 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('');
    }
}

您必须创建一个值来确定用户表中的访问级别