drrqwokuz71031449 2017-05-30 15:46
浏览 33
已采纳

Laravel 5.4中的其他auth中间件

I want to add additional middleware to user model. User table has row 'approved' which is boolean (default is false). So when user logins - middleware should check if 'approved' is equal to true. If not, redirect to error page. What i got so far:

<?php

namespace App\Http\Middleware;

use Closure;
use Auth;

class ConfirmedMiddleware
{
    public function handle($request, Closure $next, $guard = null)
    {
        if(Auth::user()->approved != true){
            redirect('/error');
        }
        return $next($request);
    }
}

So far middleware attached here:

Route::get('/home', 'HomeController@index')->middleware('confirmed')->name('home');

However, it does not work. No errors as well.

  • 写回答

2条回答 默认 最新

  • duan0821 2017-05-30 15:54
    关注

    You're better off checking this when a user logins instead of using a middleware.

    Add this to the LoginController and perform any additional checks. This method will be called after the user successfully logs in.

    protected function authenticated($request, $user)
    {
        if($user->approved != true){
            return redirect('/error');
        }
    }
    

    If you still insist on using middleware, then make sure you add the middleware in Kernel.php

    Add this in app/Http/Kernel.php

    'confirmed' => \App\Http\Middleware\ConfirmedMiddleware::class,
    

    You're also missing the return in your redirect.

    public function handle($request, Closure $next, $guard = null)
    {
        if(Auth::user()->approved != true){
            return redirect('/error');
        }
    
        return $next($request);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错