如何在Laravel 5.8上设置具有不同会话的默认重定向

时间:2019-06-01 13:24:11

标签: laravel permissions

我有一个具有角色的管理登录名。它的用户admin和superadmin。我在中间件中创建所有角色,并在LoginController中的以下代码中创建:

protected function authenticated(Request $request, $user)
{
    if ( $user->isAdmin() ) {
        return redirect()->route('admin_dashboard');
    }
    elseif ($user->isSuperadmin()) {
        return redirect()->route('superadmin_dashboard');
    }
    else{
        return redirect()->route('dashboard');
    }

}

它的工作正常,如果我登录admin,将其重定向到admin_dashboard,但是是,如果我关闭该浏览器并运行localhost:8000,则其重定向到< strong> home 而不是 admin_dashboard

我的问题,如何设置以管理员身份登录并关闭浏览器并运行localhost:8000进入admin_dashboard?

1 个答案:

答案 0 :(得分:0)

我认为您应该根据“ admin”,“ superamdin”等角色名称创建多个后卫。

这是在laravel中创建multiauth的链接。 https://www.youtube.com/watch?v=iKRLrJXNN4M&t=1s

创建多个防护后,您可以使用中间件来重定向经过身份验证的用户。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.1</version>
  <executions>
    <execution>
      <phase>validate</phase>
      <goals>
        <goal>run</goal>
      </goals>
      <configuration>
        <tasks>
          <echo>Displaying value of system variables</echo>
          <echo> ${env.YOUR_ENVIRONMENT_VARIABLE_NAME}</echo>
        </tasks>
      </configuration>
    </execution>
  </executions>
</plugin>

第二个选项

将身份验证详细信息存储在cookie中,并且在凝视应用程序时只需检查一次即可进行相应的重定向。