laravel - 无法返回登录页面
问题描述
我有一个登录页面和一个中间件。中间件检查尝试登录的用户是否已启用,如果未启用,则将他们带到显示未启用的页面。
我遇到的问题是,当我到达该页面并尝试返回时,我无法返回登录页面,我一直被引导回检查启用页面。
这是我的中间件
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');
}
解决方案
看来您必须编写身份验证代码。您可以在那里检查用户是否已启用。
<?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文档。
推荐阅读
- c# - 如何在 ASP.NET Core 6 中使用 DateOnly/TimeOnly 查询参数?
- java - 如何理解 leecode 中的这种递归?
- bash - WSL bash,为每个可用的 Windows 驱动器创建别名
- r - 解释变量的 dwt 分解
- arrays - 如何交换两个结构
- php - 如何读取 Google Cloud Storage 上的私人文件
- julia - 在 Julia 中使用 findfirst() 的多个条件
- sql - 在 oracle 过程中从具有前缀的 Varchar 数据类型字段中获取最大数量
- google-play-services - 如何修复包签名不匹配
- reactjs - 下拉 onChange 方法无法在 fluentui/react-northstar 中获取所选值