https://www.imooc.com/wenda/detail/378208?t=266634

laravel我做了前后台登陆,后台未登录跳转到前台登陆页面了。 我想让后台未登入跳转到后台登陆页面,前台未登陆跳转到前台登陆页面。

config\auth.php 
添加guards中的admin和providers中的admins

<?php
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
], 'api' => [
'driver' => 'token',
'provider' => 'users',
], 'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
], 'admins' => [
'driver' => 'eloquent',
'model' => App\AdminUser::class,
],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
],
],

路由

//登陆页面
Route::get('/login', "\App\Http\Controllers\LoginController@index")->name('login');
//登陆行为
Route::post('/login', "\App\Http\Controllers\LoginController@login");
Route::group(['middleware' => 'auth:web'],function (){
Route::get('/posts', '\App\Http\Controllers\PostController@index');
}
//后台
Route::group(['prefix' => 'admin'], function() { Route::get('/login', '\App\Admin\Controllers\LoginController@index');
Route::post('/login', '\App\Admin\Controllers\LoginController@login');
Route::get('/logout', '\App\Admin\Controllers\LoginController@logout'); Route::group(['middleware' => 'auth:admin'],function (){
Route::get('/home', '\App\Admin\Controllers\HomeController@index');
}); });

遇到的页面跳转问题

解答:

需要在 App\Exceptions\Handler.php 文件修改

<?php

namespace App\Exceptions;

use Exception;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; class Handler extends ExceptionHandler
{
/**
* A list of the exception types that should not be reported.
*
* @var array
*/
protected $dontReport = [
\Illuminate\Auth\AuthenticationException::class,
\Illuminate\Auth\Access\AuthorizationException::class,
\Symfony\Component\HttpKernel\Exception\HttpException::class,
\Illuminate\Database\Eloquent\ModelNotFoundException::class,
\Illuminate\Session\TokenMismatchException::class,
\Illuminate\Validation\ValidationException::class,
]; /**
* Report or log an exception.
*
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
*
* @param \Exception $exception
* @return void
*/
public function report(Exception $exception)
{
parent::report($exception);
} /**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $exception)
{
return parent::render($request, $exception);
} /**
* Convert an authentication exception into an unauthenticated response.
*
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Auth\AuthenticationException $exception
* @return \Illuminate\Http\Response
*/
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
} if (in_array('admin', $exception->guards())) {
return redirect()->guest('/admin/login');
} #return redirect()->guest(route('login'));
    return redirect()->guest(route('/'));   #亲测可行
} }

解答2:

后端路由  加上

Route::get('/login', '\App\Admin\Controllers\LoginController@index')->name('login');

最新文章

  1. Java Web中请求转发和请求包含
  2. js监听浏览器,关闭,刷新
  3. Tomcat的优化
  4. Objective-C之Block
  5. CAP定理与RDBMS的ACID
  6. Unix System Overview
  7. Linux 网络编程基础(1)--网络相关的数据结构及转化函数
  8. PCB的整个加工流程
  9. Thrift项目Server端开发流程
  10. nginx实现wap移动端和PC端业务分离
  11. 预防onion比特币勒索病毒,如何快速关闭135,137,138,139,445端口
  12. cpp - 输入输出
  13. 1014. Waiting in Line (模拟)
  14. QCA4028软件平台启用双WAN指导
  15. Python处理正则表达式超时的办法
  16. mysql删除重复数据只保留一条
  17. AssertJ
  18. 钉钉开发获取APPKEY, APPSECRET, CorpId和SSOSecret
  19. 使用javaWeb的二大(Listener、Filter)组件实现分IP统计访问次数
  20. oracle存储大文本clob、blob

热门文章

  1. 关于在页面得到的servlet验证码总是上一次保存在session中的
  2. IE9没有内置鼠标手势,还要自己写
  3. zk运维注意事项
  4. MySQL常见数据库引擎及对比
  5. Django多业务模块的写法
  6. QT_强杀进程
  7. web前端学习(二)html学习笔记部分(8)--服务器推送事件3
  8. 2018-8-15-WPF-插拔触摸设备触摸失效
  9. 【python练手】获取城市天气质量
  10. Nginx设置静态页面压缩和缓存过期时间的方法 (转)