(Laravel)我应该为API做些什么?[关闭]

oknrviil  于 2023-04-22  发布在  其他
关注(0)|答案(2)|浏览(114)

**已关闭。**此问题正在寻求书籍,工具,软件库等的建议。它不符合Stack Overflow guidelines。目前不接受答案。

我们不允许您提问有关书籍、工具、软件库等方面的建议。您可以编辑问题,以便您可以通过事实和引用来回答问题。
2天前关闭。
Improve this question
我自己建了一个网站:Laravel + blade。
现在我们想做一个使用vue的网站,前端和后端分开。不是前端ui/ux和管理员,而是前端html,js,vue,css和后端php,数据库。
我对这个不熟悉。我应该用护照吗?圣所? JWT ?
用户登录到http://www.example.com,网站使用API与http://api.example.com通信。我们不需要第三方,像一些购物网站使用谷歌帐户登录。
我看到了kernel.php

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],

    'api' => [
        // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
        'throttle:api',
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],
];

为什么API middlewareGroups使用较少的类?像“StartSession”,“EncryptCookies”... api middlewareGroups不需要这个?

3j86kqsm

3j86kqsm1#

你应该检查sanctum包。前端可以获得一个带有用户名和密码的访问令牌。将访问令牌放在请求头中将进行身份验证。

qyzbxkaa

qyzbxkaa2#

如果您不需要第三方或机器对机器集成,那么Sanctum是最佳选择。
API中间件组不需要会话或Cookie,除非您使用SPA身份验证(Sanctum)。
如果您看一下\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class的底层,它使用

config('sanctum.middleware.encrypt_cookies', \Illuminate\Cookie\Middleware\EncryptCookies::class),
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
config('sanctum.middleware.verify_csrf_token', \Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class),

您可以参考Laravel文档Sanctum以获取更多信息:https://laravel.com/docs/10.x/sanctum#spa-authentication。

相关问题