Laravel Sanctum Token API 身份验证在 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

        );

    }

}

来自我的控制器的功能


    public function index()

    {

        return response()->json(['Success'],Response::HTTP_OK);

    }


忽然笑
浏览 281回答 5
5回答

MYYA

我遇到了同样的问题,但我通过添加到标题解决了它:Accept with value application/json。这是我发现的最佳解决方案,也许其他人有其他解决方案。

慕斯王

我有一个类似的问题,我得到了回应{"message":"Unauthenticated."}。对我来说,这是因为在我的.env文件中,我的 APP_URL 是https://www.example.com并且我试图通过 URL 访问 API https://example.com。https://www.example.com当我更改使 API 调用起作用的URL 时。

守候你守候我

在重构过程中,他们忘记了包含默认保护定义。只需在 api guard 的 config/sanctum.php 末尾添加:'guard' =>  'api'

收到一只叮咚

试图解决这个问题时,我整天都死了。就我而言,问题出在 Apache 配置中。我希望这可以帮助你。RewriteCond %{HTTP:Authorization} ^(.+)$ RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

隔江千里

由于某种原因 auth:sanctum不适用于 API 身份验证。我也遇到了同样的问题,然后我在github上看到了这个问题。我现在看到两个解决方案jwt-authAPI认证
打开App,查看更多内容
随时随地看视频慕课网APP