首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel 5.6在控制器构造函数中访问auth()->user()?

在Laravel 5.6中,可以在控制器的构造函数中通过auth()->user()来访问当前已认证的用户。

auth()->user()是Laravel的身份验证系统提供的一个全局辅助函数,用于获取当前已认证的用户实例。它返回一个表示当前用户的User模型实例,或者如果用户未认证,则返回null

在控制器的构造函数中访问auth()->user()可以方便地获取当前已认证用户的信息,并在构造函数中进行相应的处理。例如,可以在构造函数中检查用户的权限、角色或其他相关信息,并根据需要进行相应的操作。

以下是一个示例代码,展示了如何在Laravel 5.6的控制器构造函数中访问auth()->user()

代码语言:php
复制
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    protected $user;

    public function __construct()
    {
        $this->middleware(function ($request, $next) {
            $this->user = auth()->user();
            return $next($request);
        });
    }

    public function index()
    {
        // 使用$this->user访问当前已认证用户的信息
        if ($this->user) {
            // 执行相应的操作
        } else {
            // 用户未认证的处理逻辑
        }
    }
}

在上述示例中,我们通过中间件将auth()->user()的结果赋值给了$this->user属性,以便在控制器的其他方法中使用。如果用户未认证,$this->user将为null,可以根据需要进行相应的处理。

推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云数据库(TencentDB)。您可以通过以下链接了解更多关于腾讯云服务器和腾讯云数据库的信息:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

深入剖析 Laravel 服务容器

之前 深度挖掘 Laravel 生命周期 一文,我们有去探究 Laravel 究竟是如何接收 HTTP 请求,又是如何生成响应并最终呈现给用户的工作原理。...依赖注入这个花俏名词实质上是指:类的依赖项通过构造函数,或者某些情况下通过「setter」方法「注入」到类。...我们在编写控制器时,经常会使用类型提示功能将某个类作为依赖传入构造函数;但在执行这个类时却无需我们去实例化这个类所需的依赖,这一切归功于自动解析的能力。...比如,我们的用户控制器需要获取用户信息,然后构造函数定义 User 模型作为依赖: <?...$user; } } 然后,当访问用户模块时 Laravel 会自动解析出 User 模型,而无需手动的常见模型示例。

8.9K10

Laravel框架自定义验证过程实例分析

分享给大家供大家参考,具体如下: 首先,你需要明白一点,当你开启auth中间件的时候,其实是调用了app/Http/Kernel.php的 'auth' = \Illuminate\Auth\Middleware...首先,如果你去访问开启这个验证的控制器,但是你又没有登录的话,那么会默认去搜索login路由,所以你需要在路由中设置该路由: Route::get('login','AnyControllerName@...这个时候可以使用Auth::attempt()函数,这个函数的作用原理是将你传递进去的数组,比如下面: public function checkLogin(Request $request){ $...laravel保存$password的方式是使用PHP的函数password_hash,该函数能计算传入值的哈希值,而且该函数需要第二个参数,指定哈希处理的方式,Laravel该参数名为PASSWORD_BCRYPT...,Laravel会将密码经过该函数处理后再保存。

4.7K20

PHP 基于 Cookie + Session 实现用户认证功能

], ... } 这样,我们控制器发送重定向响应时就无需编写一堆重复的代码了。...users 表插入一条记录,然后 DashboardController 控制器构造函数中新增如下代码: public function __construct() { parent::_...$this->session->has('auth_user')) { redirect('/login'); } } 表示如果用户没有登录的情况下访问博客后台,会重定向到登录页面...另外, DashboardController 的 index 方法引入认证用户变量(用户认证后才能访问到这里),传递给视图模板进行渲染: public function index() {...我们 public 目录下运行 php -S localhost:9000 启动这个博客项目,然后浏览器访问后台首页,由于用户尚未认证,所以会跳转到登录页面: ?

2.4K20

3分钟短文:太爽了,用Laravel写API接口!

引言 我们一直讲,通过路由传达到控制器,处理好数据并渲染到视图,但是对于现代的应用,前后端分离的情况下,后端写个接口就完事儿了。...laravel默认的api接口路由 routes/api.php 文件内定义,默认的情况下预定义了一个资源类型的api接口,代码如下: Route::middleware('auth:api')->get...用户权限 让我们把目光还聚焦系统默认声明的那条路由: Route::middleware('auth:api')->get('/user', function (Request $request) {...默认的驱动 token 定义框架文件 laravel/framework/src/Illuminate/Auth/TokenGuard.php 内。...默认的驱动 token 定义框架文件 laravel/framework/src/Illuminate/Auth/TokenGuard.php 内。

2K10

Laravel系列7.4】安全相关

认证体系 Laravel ,自带了一套用户登录认证体系,这一套体系原来是直接框架自带的,现在剥离出来通过 laravel/jetstream 组件实现了。...其实上面的 npm run dev 操作就是编译了 Laravel 框架自带的 Vue 框架,而模板走的正是 Vue ,文件 resource/js/Pages ,在这里我们可以找到 Auth/Register.vue...在这个控制器,我们 Login 方法中使用了 attempt() 方法来实现登录功能,只需要将原始的用户名和密码传递进去,方法内部会查询用户并进行比对,它默认走的是 User 这个 Model ,调用的数据表就是...中间件守护 Laravel 的认证体系,中间件有守卫的职责,包括配置文件和 Auth 的常用方法中都有 guard 这个单词的出现。我们源码主要就来看一下它的中间件是如何进行认证守护的。.../framework/src/Illuminate/Auth/TokenGuard.php 的构造函数默认指定的 key 就是 api_token ,这下明白为什么我们在数据库添加的字段必须是 api_token

3.6K40

30分钟用Laravel实现一个博客

HomeController.php /** * 这里这个构造函数调用了 中间件auth 对我们进行权限认证 * 即要求我们必须登陆才可以访问控制器的其他方法 * 有两种解决方法,一直是 $...总结 => 路由定义浏览器访问控制器某方法的地址,控制器完成一系列操作:如果需要操作数据库,需要调用模型,每一个模型对应一张表。...因此我们需要: 使用构造函数调用 auth中间件 来排除没有登陆的用户查看文章详情: 编辑 BlogController public function __construct(){ $this->...) // 1、代码开头引用 Auth // 2、方法内先判断一下是不是 1号用户 if(Auth::user()->id !...我们学会了创建请求Request,并且它的内部配置验证规则,控制器通过依赖注入的形式验证数据。

7.2K00

Laravel框架关键技术解析

通过__autoload或spl_autoload_register()方法进行自动加载 Laravel架构,通过函数spl_autoload_register实现类自动加载函数的注册,其中类的自动加载函数队列包含了两个类的自动加载函数...3.Laravel框架的应用:大量使用,如在服务提供者注册过程,通过将服务名称与提供服务的匿名函数进行绑定,使用时可以实现动态服务解析。...//创建,第一次要composer down-autoload一下 php artisan db:seed [—class=类名] B.查询构造器 1.Laravel框架的查询构造器是PDO扩展基础上设计的一个...十二、会话 A.Laravel框架的session机制 1.当客户端访问服务器时,服务器将开启session,检测请求的Cookie是否携带sessionID,如果携带则使用该sessionID,...user()、Request::user()、依赖注入Authenticatable $userAuth::check()等等 B.数据验证 1.控制器验证:Controller基类使用了一个ValidatesRequests

11.9K20

Laravel5 自定义路由中间件的使用步骤,太好用,珍藏了!

前言 Laravel5我们处理request请求,中间会有很多环节。本文所说的中间件,位于路由和控制器之间,起到过滤和筛选请求的作用。 ? 为什么不放到“表单验证”里呢?...注册中间件 完成中间件的类代码后,我们需要注册到 路由中间件,并让系统赋予全局可访问的方式。 文件 App\Http\Kernel.php 内添加一下内容。...// App\Http\Kernel 类...protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate...(CheckRealname::class); 需要注意的是,头部 use 引用,将类 CheckRealname 通过命名空间引入。...结语 好了,上面就是laravel自定义中间件的使用过程,相信大家可以很快掌握。 自定义的中间件可以为我们处理更为复杂的逻辑,也使控制器代码更为整洁,不会把所有逻辑都堆控制器内,维护起来臃肿冗余。

1K20

Laravel 5.0 发布, 海量新特性!!

控制器方法注入 除了现有的构造器注入以外, 新版本还可以控制器方法的依赖项进行类型约束....$posts) { // } 认证脚手架 用户注册, 认证以及密码重置控制器已经内置 5.0 版的网站框架, 除了控制器以外, 还有简单的视图, 存放在 resources/views/auth...认证相关的页面可以通过 auth/login 和 auth/register 这两个路由访问. App\Services\Auth\Registrar 服务负责处理创建和认证用户.... Laravel 5.0 检测和区分不同的运行环境变得轻而易举. 了解更多详情, 请访问完整的配置文档....这意味着当你的控制器被调用时, 你可以安全地使用该请求包含的输入数据, 因为他们已经被你表单请求类中指定的规则进行过验证了.

4.1K60

路由使用进阶(二)

隐式绑定 使用路由模型绑定最简单的方式就是将路由参数命名为可以唯一标识对应资源模型的字符串(比如 task 而非 id),然后闭包函数控制器方法对该参数进行类型提示,此处参数名需要和路由中的参数名保持一致...{task},然后默认以参数值作为资源 ID 底层通过 Eloquent 查询获取对应模型实例,并将结果传递到闭包函数控制器方法。...{task_model} 参数的路由时,路由解析器都会从请求 URL 解析出模型 ID ,然后从对应模型类 Task 获取相应的模型实例并传递给闭包函数控制器方法: Route::get('task...2、兜底路由 Laravel 5.6 ,引入了兜底路由功能。...3、频率限制 Laravel 5.6 ,还引入了频率限制功能。

8.5K40

通过修改Laravel Auth使用salt和password进行认证用户详解

Auth非常强大易用,不过Laravel的用户认证系统中用户注册、登录、找回密码这些模块中用到密码加密和认证算法时使用的都是bcrypt,而很多之前做的项目用户表里都是采用存储salt + password...修改用户注册 首先,laravel 里启用验证是用的artisan命令 php artisan make:auth 执行完命令后routes文件(位置:app/Http/routes.php)会多一条静态方法调用...Route::auth(); 这个Route是Laravel的一个Facade (位于IlluminateSupportFacadesRoute), 调用的auth方法定义IlluminateRoutingRouter...打开AuthController发现Auth相关的方法都是通过性状(traits)引入到类内的,类内use 要引入的traits,在编译时PHP就会把traits里的代码copy到类,这是PHP5.5...::provider方法是用来注册Provider构造器的,这个构造器是一个Closure,provider方法的具体代码实现在AuthManager文件里 public function provider

2.9K30

Laravel6.2用于用户登录的新密码确认流程详解

Laravel 昨天发布了 v6.2 版本,它添加了一个新的密码确认功能,该功能使你可以要求已登录的用户重新输入密码,然后才能访问路由。... Laravel 你可以轻松的设置它,所以让我们来试用一下新功能,以便你可以更好的了解它的工作原理: 设置 首先,为了更直观的了解这个新功能,我们创建一个新的 Laravel 应用: laravel...artisan migrate 我们可以通过 factory() 方法控制台创建一个测试用户: php artisan tinker $user = factory(App\User::class...在这个 demo ,我们 Settings 的命名空间里面创建了一个控制器. 有了它,一旦登录,您将被重定向到 /home 。...使用新的ddd () 辅助函数 ,将其添加到您的 SSHController::create() 方法,方法将确定下次提示您时 auth.password_confirmed_at session

2.4K31

Laravel5.1框架路由分组用法实例分析

好啦 回归正题,咱一块儿看看路由分组咋写: /** * 这就是一个路由分组 /user和/user/profile都将使用auth中间件。...::get('/user/profile', function (){ }); }); 1.2 路由前缀 /** * 路由前缀呢 就是讲此分组的所有路由路径前加个前缀 */ Route::group...'], function (){ /** * 这条路由不仅使用auth中间件,而且还加了admin前缀,我们通过/admin/user才能访问 */ Route::get...访问路径是:/admin */ Route::get('/', function (){ });; }); 1.3 子域名 /** * 比如我们可以输入larger来访问路由,子路由中可以通过参数来把.../** * 只要指明了命名空间,那么子路由中所使用的所有控制器都位于App\Http\Controller\Admin这个命名空间下。

67831

Laravel 开发 RESTful API 的一些心得

验证 API 开发总会离不开验证,这里推荐使用jwt-auth,1.0 快要来了,新版本的文档也很清晰 刚用 jwt-auth时有疑问,Laravel自带的token验证使用的是数据库apitoken字段验证...laravel用的是划线(-),因为谷歌收录时,按划线划分关键字,国内的是按下划线(_)收录,具体看自己了,我是喜欢下划线 >_< 更多看这里: 路由命名规范(https://laravel-china.org...($id); } // 甚至这样 public function show(User $user) { // do something } 下面这两个异常可以不捕获,只是方便开发查看错误消息...访问 index.html可以查看文档。 edit.html写好之后,导出 json,然后粘贴到 api.json文件。 ?...记得也把写好的格式保存到 api.yaml,因为清楚缓存之后,下次访问时会消失 自己写了一个packages 就方便创建控制器,验证,所有控制器继承重写过的基类,响应输出方便。

3.8K90

程序设计中使用Interface

首先在InterfaceLaravel框架中被称为契约, 例如我们介绍用户认证的章节到的用户看守器契约Illumninate\Contracts\Auth\Guard 和用户提供器契约Illuminate...\Foundation\Auth\Authenticatable(User Model的父类) 所以自己开发的项目中,如果Laravel提供的用户认证系统无法满足需求,你可以根据需求定义看守器和用户提供器的实现类...自定义用户认证的方法介绍用户认证的章节我们介绍过,读者可以去翻阅那块的文章。...简单讲:这个控制器知道的太多了。 控制器不需要去了解数据是从哪儿来的,只要知道如何访问就行。控制器也不需要知道这数据是从MySQL或哪儿来的,只需要知道这数据目前是可用的。...(User $user) { Order::where('user_id', '=', $user->id)->get(); } } 将接口的实现绑定到Laravel的服务容器

1.1K10

Laravel 开发 RESTful API 的一些心得

一个简单的接口示例 接口代码 验证 API 开发总会离不开验证,这里推荐使用jwt-auth,1.0 快要来了,新版本的文档也很清晰 刚用jwt-auth时有疑问,Laravel自带的token验证使用的是数据库...laravel用的是划线(-),因为谷歌收录时,按划线划分关键字,国内的是按下划线(_)收录,具体看自己了,我是喜欢下划线 >_< 更多看这里: 路由命名规范 表单验证 可以使用控制器自带的表单验证...($id); } // 甚至这样 public function show(User $user) { // do something } 下面这两个异常可以不捕获,只是方便开发查看错误消息...edit.html可以书写文档 编写语法 访问index.html可以查看文档 edit.html写好之后,导出json,然后粘贴到api.json文件 swagger 记得也把写好的格式保存到...api.yaml,因为清楚缓存之后,下次访问时会消失 自己写了一个packages 就方便创建控制器,验证 所有控制器继承重写过的基类,响应输出方便。

28710

3分钟短文:Laravel路子真野啊!路由昵称前缀中间件

引言 上一章内容我们介绍了使用laravel路由动词定义方便的url,以及通过url参数绑定传递数据,本文我们继续深入Route功能,学习一些提升生产力的方法,现实场景也非常实用。...有没有想过,能不能给路由起个名字,方便记忆,不用想着路由定义的多复杂,咱们直接用别名访问?...这样定义之后HTML文件内比如有 a 标签,或者 form 表单的 action,填url地址的时候,就可以使用laravel的助手函数,这样来写: <a href="<?...当然了,上面的示例是<em>在</em>路由组内引入的中间件。对于极为特殊的中间件功能,不能在路由组内统一引用的,可以放到<em>控制器</em>的<em>构造</em><em>函数</em>内调用。...<em>laravel</em>的花样是真多啊! 不仅如此,我们还可以为路由组声明是指定的命名空间下的<em>控制器</em>所使用的。这样,可以通过把相似功能模块放在相同命名空间下,从而达到路由分组的目的。

1.5K30
领券