Vue3 + Ionic + Sanctum 移动认证回馈 419

问题描述 投票:0回答:1

我正在尝试在我的 Vue3 Ionic 移动应用程序上执行简单的令牌身份验证。我有两个独立的存储库 - 一个是 Laravel 10 后端中的 API,另一个是 Vue3 Ionic 应用程序,我使用 Sanctum 进行 Laravel 10 API 身份验证。

这是我的 API 身份验证端点:

public function createToken(CreateToken $request): JsonResponse
    {

        Log::info('LOGIN MOBILE REQUEST', [
            'request' => $request->all(),
            'token' =>  $request->user
                ->createToken($request->deviceName)
                ->plainTextToken
        ]);
        return response()->json([
            'token' => $request->user
                ->createToken($request->deviceName)
                ->plainTextToken
        ]);
    }

问题是,当我非常奇怪地在移动应用程序上访问我的身份验证端点时,我收到了 419,这是用于基于会话的身份验证的 CSRF 内容。我不明白我如何以及为何从移动应用程序中收到 419。当我在手机上测试时,我只是通过手机上的 Android studio 启动它。我还在我的 API 中使用 Expose,并且 Expose 中的 URL 进入移动应用程序配置。所有 API 调用都工作得很好,只是我无法让 Laravel 理解这与 CSRF 无关。

让它有点奇怪 - 当我在桌面上测试相同的登录功能时,我的令牌没有问题,即使除了安装和初始设置之外,我没有做任何额外的配置。

有人知道这可能是什么吗?

php laravel vue.js ionic-framework laravel-sanctum
1个回答
0
投票

我知道那是什么。万一其他人也有同样的问题。出于习惯,我遵循了文档并在

\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
中启用了
app/Http/Kernel.php
,因为我的应用程序也需要网络身份验证。

因此,这必须处理一些条件中间件,我将根据我猜测的平台应用它。

© www.soinside.com 2019 - 2024. All rights reserved.