首页 > 解决方案 > 无法返回登录页面

问题描述

我有一个登录页面和一个中间件。中间件检查尝试登录的用户是否已启用,如果未启用,则将他们带到显示未启用的页面。

我遇到的问题是,当我到达该页面并尝试返回时,我无法返回登录页面,我一直被引导回检查启用页面。

这是我的中间件

public function handle(Request $request, Closure $next)
{
    if($request->path() == "check-enable") return $next($request);

    if($request->user() != null)
    {
        if($request->user()->enabled == 0)
        {
            return redirect('/check-enable');
        }
    }

    return $next($request);
}

我的检查启用页面

@extends('layouts.single')
@section('title', 'User Disabled')
@section('content')
    <div class="float-left">
        <a href="{{ route('disabled.user.goBack') }}">
            <i class="fa fa-arrow-alt-circle-left"></i> Go Back
        </a>
    </div>

    <div class="container">
        <div class="row">
            <div class="col-lg-12">
                You are disabled.
            </div>
        </div>
    </div>
@endsection

和我在控制器中的方法

public function disabledUserGoBack()
{
    Cache::flush();

    return redirect('/login');
}

标签: laravel

解决方案


看来您必须编写身份验证代码。您可以在那里检查用户是否已启用。

<?php
    if (Auth::attempt(['email' => $email, 'password' => $password, 'is_active' => 1]){
        return redirect('dashboard');
    }
    return redirect('login')->withErrors('Invalid credentials or user is not active yet').
?>

请浏览 Laravel文档


推荐阅读