Laravel:中间件检查用户是否被软删除

问题描述 投票:0回答:1

删除用户后,我正在为用户使用软删除。登录或认证时,所有用户均已认证。因此,我将中间件命名为

isSoftdeletedorNot

public function handle($request, Closure $next)
    {
        if ($request->user()->deleted_at == null) :
            return $next($request);
        else:
            Auth::logout();
            Session::flush();
            Session::regenerate();
            return redirect()->route('login')->withErrors(['suspended' => 'Your account is deactivated']);
        endif;
    }

执行得很好。问题是重定向的路由显示404 error,并且当我手动进行硬刷新时,它再次起作用。

laravel
1个回答
0
投票

尝试一下

 public function handle($request, Closure $next)
    {
        if ($request->user()->deleted_at != null) {
            Auth::logout();
            Session::flush();
            Session::regenerate();
            return redirect()->route('login')->withErrors(['suspended' => 'Your account is deactivated']);
        }else{
            return $next($request);
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.