8

Laravel Fortify 可以在 API 的上下文中使用吗?据我了解,Fortify(虽然是无头的,即不包括 UI 层)允许我们自定义登录和注册页面,但它会在成功验证后自动重定向到主页页面。尽管 HOME 页面是可定制的,但这并不是 API 登录正常工作的方式。它应该简单地返回 JSON 格式的成功令牌,而不需要任何类型的重定向。

Fortify 中有一个authenticateUsing函数,但即便如此,我们也可以简单地自定义身份验证逻辑,而不是自定义返回的数据。重定向仍由 Fortify 执行。

如何在 REST API 的上下文中使用 Fortify?

注意:我将在我的 Vue 前端应用程序中使用它。我也打算让Sanctum进入游戏,但在此之前我只是想看看我是否可以使用 Fortify 进行常规的基于令牌的身份验证,而无需编写我自己的登录、注册和注销路由以及控制器功能。

4

2 回答 2

10

只需使用 'application/json' 或 'application/javascript' 设置 'Accept' 标头,然后 fortify 将响应 json 格式的正文而不是重定向。

顺便说一句,使用 Sanctum 代替 Passport for SPA 更容易安全地保存令牌。谷歌关于在哪里存储 SPA 的 API 令牌然后你会发现原因。

于 2020-10-13T02:13:14.837 回答
9

身份验证可以是基于会话的,也可以是基于令牌的。

Laravel Fortify 仅为基于会话的身份验证提供后端逻辑必需品,因此不适用于基于令牌的 API 身份验证。

如果您需要基于令牌的 API 身份验证,您可以根据需要使用SanctumPassport。但是无论哪种情况,您都必须编写一些代码。

如果您决定使用 Laravel Passport,我有一个可能有用的样板项目:https ://github.com/pktharindu/laravel-api-boilerplate-passport

于 2020-09-24T08:09:08.240 回答