当前位置: 首页 > 知识库问答 >
问题:

Laravel 5.4 auth立面不工作

谈萧迟
2023-03-14

Laravel 5.4 Auth立面不工作。身份验证中间件功能正常。如预期的那样,对受保护路由的调用会生成登录页面。格式错误的凭据会产生预期的错误。正确的凭据会产生正确的页面。注释掉“使用照明\支持\门面\Auth;”这一行会产生“未找到类'应用\Http\控制器\管理员\Auth'”的错误。

具体来说,Auth::check()产生false,而Auth::user()不返回任何内容,尽管登录成功。调用这些实现中的任何一个都不会产生错误。

这段代码在Laravel 5.2中运行良好。我所知道的与过程的唯一偏差是,在迁移到Laravel 5.4期间,我没有在新的Laravel实现中运行命令“php artisan make: auth”。

在Bing或stackoverflow内部搜索引擎中搜索“laravel 5.4 auth facade不起作用”不会产生相关结果。

相关代码显示如下:

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\User;
use App\Models\Admin;
use App\Models\Role;
use App\Models\Role_user;
use App\Models\Client;
use App\Models\Contact;
use App\Models\PublicPages;
use App\Models\Survey_question;
use App\Models\Survey_item;
use App\Models\Survey_project;
use App\Models\State;
use App\Models\Test_post;
use App\Models\Registration;
use Hash;
use Redirect;
use DB;
use Illuminate\Support\Facades\Auth;
use App\Classes\RoleHelper;
use App\Classes\CommonCode;

class AdminController extends Controller
{
var $obj_logged_in_user;
var $arr_logged_in_user;
var $bool_has_role;
var $roleHelper;
//organization of function
// 1. __construct
// 2. index
// get, alphabetically
// post, alphabetically

public function __construct(
        Role_user $role_user, RoleHelper $roleHelper, Request 
$request)
{   

    $this->middleware('auth');
    echo "<pre>";
    echo "admin controller, line 50<br>";
    print_r($request->user);
    echo "</pre>";
    // line 49 (request->user) produces nothing

    if (Auth::check())
    {

        $this->middleware('role:admin');
        $this->obj_logged_in_user = Auth::user();
print_r($this->obj_logged_in_user);
// line 58 (print_r) produces nothing
        $this->arr_logged_in_user = $roleHelper->prepare_logged_in_user_info($this->obj_logged_in_user);

    }  // end if Auth::check()

} // end __construct function

总之,我希望Auth::check()返回准确的结果,Auth::user()返回登录的用户对象。先谢谢你。

共有1个答案

施阳曜
2023-03-14

如果要在\u construct()方法中使用Auth函数,则需要将其传递给$this-

public function __construct(Role_user $role_user, RoleHelper $roleHelper)
{
    $this->middleware('auth');
    $this->middleware('role:admin');
    $this->middleware(function ($request, $next) use ($role_user, $roleHelper) {

        if (Auth::check()) {

            $this->obj_logged_in_user = Auth::user();
            $this->arr_logged_in_user = $roleHelper->prepare_logged_in_user_info($this->obj_logged_in_user);

        }  

        return $next($request);
    });
}

另外,仅供参考,您可能会发现使用Laravel附带的dump()dd()函数更容易。而不是写:

echo "<pre>";
echo "admin controller, line 50<br>";
print_r($request->user);
echo "</pre>";

你可以写:

dump('admin controller, line 50', $request->user);

https://laravel.com/docs/5.4/helpers#method-dd

希望这能有所帮助!

 类似资料:
  • 在寻找解决方案后,我没有找到任何解决我的问题。 我有一些提升,在我的应用程序的很大一部分产生阴影。 但在一个特定的地方,我不能使它工作。 (我在下面的图片上放了一个箭头) 工具栏下方的白色区域是,它显示

  • 聊得挺开心,但只面了15分钟,感觉过的希望不大。 面试官长得像 up主 阿沛不开心 ,看着他我总想笑 1. 自我介绍 2. 为什么只实习了一个月 感觉每个面试官都会问一嘴 3. 腾讯犀牛鸟开源人才培养计划的性质 3.1 Tencenten Tiny运行在什么架构上 3.2 为什么要区分用户态和内核态 3.3 cpu怎么知道当前二进制代码的权限 3.4 如果我在用户态的程序直接编写汇编或者二进制代码

  • 笔试: 9.5 一面:9.7 线上 总共20min 自我介绍三分钟 主要是问基本的算法八股 比如怎么防止过拟合 dropout 这种 bn ln区别,平常使用过得算法模型这些 总体来讲体验感不错 大概一周后通知了第二次面试 二面:9.21 线下 总共30min 自我介绍三分钟 主要问我简历中的一段科研经历(和医院合作的项目) 问unet transformer 等基础 最重要的是 问思想,如果是落

  • 我有一个Spring Boot Application ThymeLeaf,带有@RestController和@Controller,嵌入式tomcat一切正常,但当我将带有war文件的应用程序部署到Tomcat 8.5@Controller类不工作@RestController工作正常,当我使用@Controller访问任何带有控制器的页面时,我有404错误。 这是我的pom.xml: 这是我

  • 问题内容: 我有一个非常轻量级的作业,应在触发后立即执行,而不是等待一个小时才能完成当前作业。 据我了解,一项 轻量级 任务就是我想要的。它将为该任务创建一个临时执行程序。 我怎样才能使工作成为举重运动员? 问题答案: 试试这个FlyWeightProject插件。它是在Flyweight中运行的Freestyle类型的扩展。

  • 我试图详细学习JavaEE7,但我在从数据库中获取记录并在JSF页面上显示它们方面遇到了问题。 我使用Wildfly10.1.0和Oracle XE11。我创建了以下数据源: 在JBoss的管理接口中的连接测试是成功的。 这是我的: 当我通过运行WildFly,并通过部署我的应用程序时,它可以工作。 当我在Eclipse中启动服务器并尝试使用相同的命令部署应用程序时,它失败了--因为我添加了JPA