如何访问输入的令牌值 - Laravel API
Posted
技术标签:
【中文标题】如何访问输入的令牌值 - Laravel API【英文标题】:How to access inputted token value - Laravel API 【发布时间】:2021-09-17 17:45:51 【问题描述】:我正在输入如上的令牌并尝试使用以下代码打印令牌值。但是出现错误Undefined variable: token
。我不确定我是否可以访问令牌,如下所示。请帮助我提出您的建议。
<?php
namespace App\Http\Controllers;
use App\Models\Files;
use Illuminate\Support\Facades\Auth;
class FileController extends Controller
public function upload()
$tock=Auth::user()->$token;
dd($tock);
【问题讨论】:
我想这会解决你的问题:https://***.com/questions/35137768/how-to-use-postman-for-laravel-post-request 【参考方案1】:您正在尝试访问用户上的$token
变量,即使它不存在。
相反,您应该尝试访问request
以及随请求发送的值。这可以使用 request()
帮助程序或通过将 Request 类注入函数来实现。
有注射:
<?php
namespace App\Http\Controllers;
use App\Models\Files;
use Illuminate\Http\Request; // Add request to namespace
use Illuminate\Support\Facades\Auth;
class FileController extends Controller
public function upload(Request $request)
dd($request->bearerToken());
或者,不注入:
<?php
namespace App\Http\Controllers;
use App\Models\Files;
use Illuminate\Support\Facades\Auth;
class FileController extends Controller
public function upload()
dd($request->bearerToken());
使用bearerToken()
方法,您可以访问请求中提供的Bearer 令牌。
【讨论】:
如果我需要不是输入字段的用户 id 怎么办?当我尝试Auth::user()->id;
时,我得到了错误trying to get id of a non object
错误告诉你Auth::user()
不是一个对象。因此,不能调用非对象的 ID。您需要找到一种方法来识别和授权用户。我假设您正在为此使用包装。如果是这样,您使用的是什么包?
我只使用Auth
包
好的!我认为您应该研究API的用户身份验证方法。 Auth
包(通常)用于web
路由。目前,您的用户未被 BearerToken 识别。系统如何知道什么 bearerToken 属于哪个用户,并决定该用户是否应该获得访问权限? Laravel 7.X 及更高版本可以访问Laravel Sanctum。尝试阅读文档,进行一些研究并尝试实施它!如果您将来遇到任何问题,也许打开一个新问题会更好。以上是关于如何访问输入的令牌值 - Laravel API的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 通过 Passport 实现 API 请求认证:沙箱测试篇(私人访问令牌)