如果我去http://www.yourdomain.com/admin/login,我会看到我的登录页面。当用户未登录时,Laravel重定向到特定路线
如果我去http://www.yourdomain.com/admin/example我没有管理员重定向到http://www.yourdomain.com/login。
我的网络路线:
Auth::routes();
Route::prefix('admin')->group(function() {
Route::get('/login','Auth\[email protected]')->name('admin.login');
Route::post('/login','Auth\[email protected]')->name('admin.login.submit');
Route::get('/manifiesto','[email protected]')->name('admin.dashboard');
Route::get('/logout','Auth\[email protected]')->name('admin.logout');
Route::get('/trabajadores','[email protected]')->name('admin.trabajadores');
Route::get('/clientes','[email protected]')->name('admin.clientes');
Route::get('/proyectos','[email protected]')->name('admin.proyectos');
Route::get('/administradores','[email protected]')->name('admin.administradores');
});
当我把一些网址与/管理员之前用户没有登录,我想重定向到/管理/登录。
谢谢。
更多信息:
应用程序/ HTTP /控制器/认证/ AdminLoginController.php
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Auth;
class AdminLoginController extends Controller
{
protected $loginPath = 'admin/login';
public function __construct()
{
$this->middleware('guest:admin', ['except' => ['logout']]);
}
public function showLoginForm()
{
return view('backend.public.pages.login');
}
public function login(Request $request)
{
//validate the form data
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|min:6'
]);
//attempt to log the user in
if (Auth::guard('admin')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)){
//if successful, then redirect to their intended location
return redirect()->intended(route('admin.dashboard'));
}
return redirect()->back()->withInput($request->only('email','remember'));
}
public function logout()
{
Auth::guard('admin')->logout();
return redirect('/');
}
}
应用程序\ HTTP \中间件\ AdminAuthenticate.php
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class AdminAuthenticate
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($this->auth->guest())
{
if ($request->ajax())
{
return response('Unauthorized.', 401);
}
else
{
return redirect()->guest('admin/login'); // <--- here
}
}
return $next($request);
}
}
到每一个管理控制器的构造函数中添加新的中间件试试这个'路线:: (['prefix'=>'admin','middleware'=>'auth'],函数() {....});' – Maraboc
同样的问题,我有重定向到/ login –
是否有其他登录路线或JUST'管理员/登录'? – Maraboc