【问题标题】:Error: message: "Unauthenticated." in laravel and vue错误:消息:“未经身份验证。”在 laravel 和 vue 中
【发布时间】:2021-04-14 00:56:57
【问题描述】:

我正在使用 laravel 和 vue,我正在尝试让我的中间件工作。

发生的情况是,当我以客户身份登录我的应用并在我的开发工具中检查我的网络选项卡时,我正在保护的路由显示

message: "Unauthenticated."

这是我的中间件

    public function handle(Request $request, Closure $next)
    {
        if(Auth::check() && Auth::user()->role == 'customer')
        {
            return $next($request);
        }else{
            abort(403);
        }
    }

这是我的 api 路由

Route::middleware(['auth', 'isCustomer'])->group(function(){
    Route::get('/customer/getItems/{customer}', [ CustomerController::class, 'getItems']);
});

【问题讨论】:

    标签: laravel vue.js laravel-8


    【解决方案1】:

    如果您提到中间件RedirectIfAuthenticated,那么您可以试试这个

    public function handle(Request $request, Closure $next)
        {
            if(Auth::check() && Auth::user()->role == 'customer')
            {
                return redirect ('/home');
            }else{
                abort(403);
            }
        }
    

    【讨论】:

    • 我不知道我是否应该提到这一点,但我有 2 个中间件可以检查用户是客户还是管理员。我确实尝试了您的建议,但我什至无法访问我的登录页面
    • 您好,如果您使用 2 个中间件来分隔路由,我建议您使用要允许访问客户的中间件来编辑您的路由。您当前使用的路由是基于配置文件的默认身份验证。
    • 我的路线看起来就像我在我的问题中所说的那样。唯一的区别是对于客户我有isCustomer 而对于管理员我有isAdmin
    • 您的中间件进行检查。你为什么不把它放到你的路线中?目前,您正在使用这个 'auth' => \App\Http\Middleware\Authenticate::class,您可以从 App\Http\Kernel php 文件中找到它。您创建的中间件 - 您还需要在此文件中注册它。
    猜你喜欢
    • 2020-12-14
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    • 2023-03-10
    • 2019-06-02
    • 2018-05-03
    • 2019-06-14
    • 2017-09-01
    相关资源
    最近更新 更多