首页 > 解决方案 > 在 Laravel 自定义控制台命令中获取身份验证结果

问题描述

我正在制作一个我想安排的控制台命令。我已经编写了我想要的完整代码,但我面临的问题是我编写时在自定义控制台命令中:

Auth::user();

它返回:

无效的

该命令不会在我的应用程序中执行,因为它给出了:

无效的

我明白了,但后来我在我的一个模型中创建了一个静态函数,并将 id 从那里返回到我的控制台命令句柄函数,但它仍然给我Null任何关于如何在我的自定义 laravel 控制台命令中获取 Auth 记录的想法。任何帮助都会很棒。

编辑: 这是我为获取 id 而编写的静态方法。

public static function getAuhtCode(){
    $code = Auth::user()->id;
    return $code;
}

标签: laravellaravel-5scaffolding

解决方案


您可以使用loginUsingId会话保护中的方法手动验证用户身份,这要归功于 id。

/**
     * Log the given user ID into the application.
     *
     * @param  mixed  $id
     * @param  bool  $remember
     * @return \Illuminate\Contracts\Auth\Authenticatable|false
     */
    public function loginUsingId($id, $remember = false)
    {
        if (! is_null($user = $this->provider->retrieveById($id))) {
            $this->login($user, $remember);

            return $user;
        }

        return false;
    }

例如

Auth::loginUsingId(1);
Auth::user(); //Will work

推荐阅读