在没有令牌的 Laravel API 中,经过身份验证的用户为空

Authenticated user is null in Laravel API without token

我正在尝试根据登录的用户 ID 保存我的数据。但我做不到。我正在使用 Postman 和 JWT 身份验证测试我的 api。当我登录时,我会得到一个令牌。我可以使用该令牌针对 user_id 保存数据。但我不想在每次请求时都传递该令牌。

我在这里尝试的是像这样保存 user_id

auth()->guard('api')->user();

我的整个控制器方法:

$business = new Business();
$business->business_name = Input::get('business_name');
$business->business_url = Input::get('business_url');
$business->user_id = auth()->guard('api')->user();


$business->save();

$resultArray = ['status' => 1, 
    'message' => 'Business added!', 
    'dataArray' => $business
];

当我遇到这个错误时

Integrity constraint violation: 1048 Column 'user_id' cannot be null

当我登录时,我收到如下响应:

{
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vMTI3LjAuMC4xOjgwMDAvYXBpL2xvZ2luIiwiaWF0IjoxNTIzOTYxNDEwLCJleHAiOjE1MjM5OTc0MTAsIm5iZiI6MTUyMzk2MTQxMCwianRpIjoiVWppUVVXTENWNjQ4WTJWNyIsInN1YiI6MSwicHJ2IjoiODdlMGFmMWVmOWZkMTU4MTJmZGVjOTcxNTNhMTRlMGIwNDc1NDZhYSJ9.rIjmaEA1HdG64uolyKO9gVX6mqiQ8PN-a2YGO2-Palo",
    "currentUser": {
        "id": 1,
        "name": "Shahzad Hussain",
        "email": "shahzadshahg@hotmail.com",
        "created_at": "2018-04-17 05:55:55",
        "updated_at": "2018-04-17 05:55:55"
    }
}

我需要你的帮助,我们将不胜感激!

改变

auth()->guard('api')->user();

\Auth::user()->id

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

$business->user_id = $this->currentUser->id;

auth()->user()->id