公共Laravel API的身份验证

问题描述

我正在制作一个公共API,以允许第三方网站与我的应用程序进行交互,我想知道管理身份验证的最佳方法是什么。我目前正在研究使用Laravel Passport,但是我对工作流的工作方式感到有些困惑。

我应该为我的用户创建客户端,然后使用来请求自己的令牌,还是应该只有一个客户端用来与我一起请求令牌并将令牌分发给用户。

我很想使用Laravel Passport,因为它集成了OAuth2,这是一个非常著名的身份验证标准,但是从阅读Passport文档看,它似乎并不是为了创建公共API而编写的,因为它是所有客户端创建的“方法”是通过运行工匠命令而不是通过控制器方法来完成的。

更新

我目前正在寻找的是让用户通过编写一个控制器来创建OAuth客户端,该控制器使用php artisan passport:client命令中包含的相同类型的代码,但是该控制器位于控制器中,因此可以从前端完成网页。然后,这将为用户提供一个客户端ID和秘密,然后他们可以通过请求一个访问令牌来使用它们来遵循标准的OAuth流。我不确定这是否正确,或者对于一个基本的API来说是否太深了,但这就是我的想法

解决方法

您可以尝试使用此库。 https://jwt-auth.readthedocs.io/en/develop/

它应该可以满足您的目的。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...