Authentication Laravel在控制器构造函数中读取用户id

Authentication Laravel在控制器构造函数中读取用户id,authentication,laravel,Authentication,Laravel,在我的控制器中,我没有在每个方法中提取Auth::id(),而是在控制器的类中设置了$id属性,并在构造函数中提取了一次。那么,在我刚才提到的其余方法中,$this->id,它被认为是安全的还是我做错了什么 代码示例:您可以做的是在控制器中插入Guard实例,然后将当前登录的用户(如果有)分配给类属性: <?php namespace App\Http\Controllers; use Illuminate\Contracts\Auth\Guard; class SomeControl

在我的控制器中,我没有在每个方法中提取
Auth::id()
,而是在控制器的类中设置了
$id
属性,并在构造函数中提取了一次。那么,在我刚才提到的其余方法中,
$this->id
,它被认为是安全的还是我做错了什么


代码示例:

您可以做的是在控制器中插入Guard实例,然后将当前登录的用户(如果有)分配给类属性:

<?php namespace App\Http\Controllers;

use Illuminate\Contracts\Auth\Guard;

class SomeController extends Controller
{
    protected $auth;
    protected $user;

    public function __construct(Guard $auth)
    {
        $this->auth = $auth;
        $this->user = $this->auth->user();
    }

    public function someMethod()
    {
        // Get logged in user’s ID
        $userId = $this->user->id;
    }
}

我没有发现这种方法有任何重大问题,尽管我没有看到经常使用的方法


我自己发现,从请求中获取控制器中的$request->user()更容易。

@Broshi会的,但通过接口声明依赖项比使用façades更好。