为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel Sanctum Token API 身份验证在 Postman 中不起作用

Laravel Sanctum Token API 身份验证在 Postman 中不起作用

PHP
忽然笑 2023-04-28 17:16:59
我正在尝试将 Sanctum 用于仅 API 应用程序。我没有将它用于 SPA。我有一个由 Sanctum 中间件设置和保护的单一端点。我正在通过 tinker cli 工具为所述用户创建一个用户和一个令牌。然后,我将令牌粘贴到授权选项卡中不记名令牌选择下的 Postman 中。但是,当我提交请求时,出现未经身份验证的错误。不太确定我在这里做错了什么。密切关注提供的文档以及我能找到的稀疏视频。下面是一些代码片段。我很欣赏这里的洞察力。API.phpRoute::middleware('auth:sanctum')->apiResource('/documents','DocumentHandlerController');中间件/Authenticate.phpclass 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);    }
查看完整描述

5 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

我遇到了同样的问题,但我通过添加到标题解决了它:Accept with value application/json

这是我发现的最佳解决方案,也许其他人有其他解决方案。

//img1.sycdn.imooc.com//644b8f24000113b206500298.jpg

查看完整回答
反对 回复 2023-04-28
?
慕斯王

TA贡献1864条经验 获得超2个赞

我有一个类似的问题,我得到了回应{"message":"Unauthenticated."}

对我来说,这是因为在我的.env文件中,我的 APP_URL 是https://www.example.com并且我试图通过 URL 访问 API https://example.com

https://www.example.com当我更改使 API 调用起作用的URL 时。


查看完整回答
反对 回复 2023-04-28
?
守候你守候我

TA贡献1802条经验 获得超10个赞

在重构过程中,他们忘记了包含默认保护定义。

只需在 api guard 的 config/sanctum.php 末尾添加:

'guard' =>  'api'


查看完整回答
反对 回复 2023-04-28
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

试图解决这个问题时,我整天都死了。就我而言,问题出在 Apache 配置中。我希望这可以帮助你。

RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]


查看完整回答
反对 回复 2023-04-28
?
隔江千里

TA贡献1906条经验 获得超10个赞

由于某种原因 auth:sanctum不适用于 API 身份验证。我也遇到了同样的问题,然后我在github上看到了这个问题。
我现在看到两个解决方案

  1. jwt-auth

  2. API认证


查看完整回答
反对 回复 2023-04-28
  • 5 回答
  • 0 关注
  • 280 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信