小编Vic*_*ori的帖子

自定义中间件 - 太多重定向 - Laravel

我想创建一个自定义中间件,只有当用户经过身份验证并且电子邮件是某个电子邮件才能访问 /admin 页面。

虽然,当我指定自定义路由然后重定向时,它总是说重定向太多。

简短的解释。

  1. 用户登录 -> 重定向到 /home。(作品)
  2. 如果用户尝试访问 /admin 并且他们的电子邮件与中间件中指定的电子邮件不同,则重定向到 /home。
  3. 如果属实,请让他们进入 /admin

我的中间件称为“admin.verify”

路由文件会自动加载,如果我执行重定向('/home'),它会自动运行我的中间件,这就是为什么我猜测它经常重定向到主页。

路线文件:

Route::get('/admin', 'AdminController@index')->name('admin.index');
Run Code Online (Sandbox Code Playgroud)

管理员控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class AdminController extends Controller
{
    public function __construct(){
      $this->middleware(['auth', 'admin.verify']);
    }


    public function index(){
      return view('admin.test');
    }
}
Run Code Online (Sandbox Code Playgroud)

中间件:

 public function handle($request, Closure $next)
    {

      if (Auth::check() && Auth::User()->email == 'Tester@gmail.com') {
        return $next($request);
      } else {
        return redirect()->route('home');
      }
Run Code Online (Sandbox Code Playgroud)

我的家乡路线:

 GET|HEAD | home | home| App\Http\Controllers\HomeController@index | web,auth
Run Code Online (Sandbox Code Playgroud)

家庭控制器:

class HomeController extends Controller …
Run Code Online (Sandbox Code Playgroud)

php middleware laravel laravel-5

8
推荐指数
1
解决办法
2万
查看次数

如何在Laravel路由中返回.xml文件

我已生成站点地图.xml文件并想要返回.我将文件放在我的views文件夹中并制作了这条路线:

Route::get('/site-map', function(){
    return view('sitemap.xml');
});
Run Code Online (Sandbox Code Playgroud)

虽然我不能让它显示出来.

php sitemap laravel laravel-5

5
推荐指数
1
解决办法
6907
查看次数

标签 统计

laravel ×2

laravel-5 ×2

php ×2

middleware ×1

sitemap ×1