如何让在线用户在laravel 5.3中出局

时间:2017-02-04 21:35:25

标签: php authentication laravel-5.3

我有一个管理员帐户和用户帐户 当我将$ user-> active设置为0时,我想让在线用户立即离开我的管理员帐户并立即拒绝所有导航:

$user->active = 0;

2 个答案:

答案 0 :(得分:0)

您想在状态更改为非活动状态后注销用户吗?

如果是这种情况,你可以

public function updateUserStatus(){

  $user = Auth::user();
  $user->active = false;
  $user->save();
  Auth::logout();

  return redirect("/home");
}

答案 1 :(得分:0)

我决定使用中间件:

第1步:在终端

php artisan make:middleware ActiveCompt

步骤2设置中间件:

<?php

namespace App\Http\Middleware;
use Auth;
use Closure;

class ActiveCompt
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Auth::check()){
            if ($request->user()->statut == 1) {
                return redirect('logout');
            }
        }
        return $next($request);
    }
}

第3步:定义路线。在karnel.php

protected $routeMiddleware = [
.
.
.
'ActiveCompt' => \App\Http\Middleware\ActiveCompt::class,
];

第4步:从构造函数中调用中间件ActiveCompt

$this->middleware('ActiveCompt');