![](/img/trans.png)
[英]React + Laravel + Sanctum for api token authentication(NOT cookie)
[英]Laravel Sanctum Token API Authentication Not Working in Postman
我正在尝试将 Sanctum 用于仅 API 的应用程序。 我没有将它用于 SPA。 我有一个由 Sanctum 中间件设置和保护的单一端点。 我正在通过 tinker cli 工具为所述用户创建一个用户和一个令牌。 然后,我将令牌粘贴到授权选项卡中不记名令牌选择下的 Postman 中。 但是,当我提交请求时,出现未经身份验证的错误。 不太确定我在这里做错了什么。 密切关注提供的文档以及我能找到的稀疏视频。 下面是一些代码片段。 我很欣赏这里的洞察力。
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
);
}
}
Function 来自我的 controller
public function index()
{
return response()->json(['Success'],Response::HTTP_OK);
}
面临同样的问题。 经过一番调查,问题似乎发生在那里: https://github.com/laravel/sanctum/commit/f5695aecc547138c76bc66aaede73ba549dabdc5
在重构期间,他们忘记了包含默认保护定义。
只需在 config/sanctum.php 的末尾添加 api 防护:
'guard' => 'api'
试图解决这个问题时,我整天都在杀人。 就我而言,问题出在 Apache 配置中。 我希望这可以帮助你。
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
我有一个类似的问题,我得到了响应{"message":"Unauthenticated."}
。
For me it was because in my .env
file, my APP_URL was https://www.example.com
and I was trying to access the API via the URL https://example.com
.
当我更改 URL 时,它使 API 调用https://www.example.com
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.