如何在没有典型 laravel /login 的情况下使用 laravel sanctum

Posted

技术标签:

【中文标题】如何在没有典型 laravel /login 的情况下使用 laravel sanctum【英文标题】:How to use laravel sanctum without typical laravel /login 【发布时间】:2021-03-11 11:43:58 【问题描述】:

我已经用 NuxtJS 创建了 PWA,

然后我将使用sanctum package,但我不想请求典型的 Laravel /login 路由,因为我有一个自定义的 api /login 路由,它使用 OTP 验证用户,而不是通过密码!

所以我想知道在这种情况下我该如何使用圣所??

【问题讨论】:

【参考方案1】:

您可以使用 Sanctum 基于令牌的身份验证来实现此目的。您所要做的就是将HasApiTokens trait 添加到您的可验证模型中,并在成功登录时为其颁发新令牌。因此,您将拥有一条接受电话号码或电子邮件并执行登录操作的路线。这将触发应用程序向用户发送 OTP。您必须将 OTP 存储在系统的某个位置。然后创建另一个端点,用户可以在其中发回他们收到的 OTP。然后,此路由将检查提供的 OTP 是否与系统上的 OTP 匹配,并向用户颁发令牌。

$token = $user->createToken(<provide-a-token-name>);

确保使用令牌实例上的plainTextToken 函数将明文令牌发回给用户。用户需要将此令牌作为 Authorization 标头中的不记名令牌添加到请求中。

【讨论】:

以上是关于如何在没有典型 laravel /login 的情况下使用 laravel sanctum的主要内容,如果未能解决你的问题,请参考以下文章

如何在Laravel应用程序中将登录行为从/ login URL移动到我的主页?

使用 Laravel 8(和 Jetstream)将自定义数据传递到 login.blade.php

Laravel URL 变为 localhost/index.php/login 。如何将其更改回本地主机/登录名?

Laravel 刀片视图不工作,没有刀片工作

Laravel 5.5 - 升级身份验证后没有正确重定向

如何在 laravel 中定义表单内的动作?