【发布时间】:2020-09-22 16:44:37
【问题描述】:
我正在尝试将 Sanctum 用于仅 API 的应用程序。我没有将它用于 SPA。我有一个由 Sanctum 中间件设置和保护的端点。我正在通过 tinker cli 工具为该用户创建一个用户和一个令牌。然后,我将令牌粘贴到授权选项卡中不记名令牌选择下的 Postman 中。但是,当我提交请求时,我收到一个未经身份验证的错误。不太确定我在这里做错了什么。密切关注提供的文档以及我能找到的稀疏视频。这是一些代码sn-ps。我很欣赏这里的洞察力。
API.php
Route::middleware('auth:sanctum')->apiResource('/documents','DocumentHandlerController');
中间件/Authenticate.php
class Authenticate extends Middleware
{
/**
* Return 401 when not authorized
*
* @param \Illuminate\Http\Request $request
* @return string|null
*/
public function handle($request)
{
return response()->json(
['message'=>'Unauthorized']
,Response::HTTP_UNAUTHORIZED
);
}
}
我的控制器的功能
public function index()
{
return response()->json(['Success'],Response::HTTP_OK);
}
【问题讨论】:
-
我在这里接受纠正,但几周前我遇到了与您类似的问题。我认为问题在于 Sanctum 使用基于 cookie 的身份验证,并且需要在 web.php 中进行 CSRF 保护和状态管理。您是在使用 sanctum cookie 身份验证还是在这种情况下使用 api 令牌?我最终通过使用 web.php 而不是 api.php 解决了这个问题。我不确定这有多大帮助,但这对我有用
-
你能解释一下,你是如何创建令牌的?
标签: php laravel authentication laravel-sanctum