【问题标题】:Log out in multiple auth in Laravel 5在 Laravel 5 中注销多个身份验证
【发布时间】:2017-07-16 13:30:40
【问题描述】:

我使用 Laravel 的默认身份验证进行多重身份验证。我有两种类型的用户管理员和普通用户。对于管理员,我使用了管理员保护,如果我在不同的浏览器中以两种类型的用户身份登录,它工作正常,但问题是当我在注销时在同一个浏览器中以管理员和用户的身份登录它正在将我重定向到管理员登录页面。如果我从管理面板注销然后到管理员登录页面,我想被重定向,否则如果我从用户面板注销,它应该将我重定向到“/”路由。这是我在验证用户文件中的注销方法代码。

public function logout(Request $request)
    {
        if(Auth::guard('admin')->check()) $redirect = '/admin/login';
        else $redirect = '/';

        $this->guard()->logout();

        $request->session()->flush();

        $request->session()->regenerate();

        return redirect($redirect);
    } 

这里是后台管理员和用户的注销表单。

<a href="{{ url('/logout') }}" onclick="event.preventDefault();
     document.getElementById('logout-form').submit();">Logout</a>

现在如何解决这个问题?

【问题讨论】:

    标签: php authentication laravel-5.3 laravel-routing laravel-authorization


    【解决方案1】:

    嗯,据我了解,当您以管理员和用户身份注销时,您仍然希望被发送回 / 路由。我建议您删除当前用户是否是管理员的检查,默认情况下将用户送回家。

    【讨论】:

    • 其实并非如此。如果我从管理员注销,它应该将我重定向到管理员登录页面,否则如果我从用户面板注销,它应该将我重定向到“/”路由。
    • 如果你把dd(Auth::guard('admin')-&gt;check())放在你的if语句上面,你会得到什么。
    猜你喜欢
    • 2014-07-19
    • 1970-01-01
    • 2015-08-21
    • 2015-06-14
    • 2017-08-29
    • 2015-05-26
    • 2015-05-25
    • 2015-06-20
    相关资源
    最近更新 更多