【发布时间】:2021-09-17 19:13:35
【问题描述】:
这是一个上传文件的 API。在此,管理员和其他用户可以上传文件。所以,我需要找到上传它的人并将其存储到uploadedBy 列。尝试使用以下代码时,我收到错误Trying to get property 'id' of non-object。我不确定我是否可以得到这样的 id。请帮助我提出您的建议。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Files;
use Illuminate\Support\Facades\Auth;
class FileController extends Controller
{
public function __construct()
{
$this->middleware('auth:api');
}
public function upload(Request $req)
{
$file=$req->file('file_name');
$dataToInsert = array();
$filePath= uniqid().'-'.now()->timestamp;
$dataToInsert['FilePath'] = $filePath;
$dataToInsert['uploadedBy'] = Auth::user()->id;
$dataToInsert['Userid'] = $req->bearerToken();
Files::create($dataToInsert);
}
}
编辑:添加了中间件。现在的错误是 API 只显示了消息unauthenticated。
【问题讨论】:
-
由于
Auth::user()->id;触发错误,用户未通过身份验证。 -
在
unauthenticated的身份验证中出现了问题,我们无法为您提供更多信息。这是一些线索:尝试使用新令牌(可能已过期)。如果您有另一个有效的 API 路由,请检查它是如何完成的(也许您有另一个 API 身份验证,例如来自 tymon 的 jwt-auth)。检查你的中间件类(如果你修改了它们)
标签: laravel jwt laravel-8 rest