首页 > 解决方案 > 如何基于多用户系统的防护将用户重定向到不同的页面?

问题描述

在 laravel 5.7 中有一个“Authenticate.php”文件,如下所示:

<?php

namespace App\Http\Middleware;

use Illuminate\Auth\Middleware\Authenticate as Middleware;

class Authenticate extends Middleware
{
/**
 * Get the path the user should be redirected to when they are not authenticated.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return string
 */
 protected function redirectTo($request)
 {
    if (! $request->expectsJson()) {
        return route('login');
    }
  }
}

我为管理员用户类型(auth.php)设置了管理员保护:

        */

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],
    'admin' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],
    'admin-api' => [
        'driver' => 'token',
        'provider' => 'admins',
    ],
],

如何从 $request 中获取保护类型,以便检查 $guard 名称是否为“admin”设置不同的重定向页面。大多数教程尚未涵盖 5.7 版本。

非常感谢提前

标签: phplaravel-5.7

解决方案


我想我遇到了你的问题,你可以关注这个问答,希望对你有所帮助。

如何在同一个 laravel 控制器或路由中检查多个 gaurd

https://stackoverflow.com/a/49871781/9246297


推荐阅读