Laravel - 通过外部 API 进行身份验证

Posted

技术标签:

【中文标题】Laravel - 通过外部 API 进行身份验证【英文标题】:Laravel - Authentication via external API 【发布时间】:2016-11-01 11:01:48 【问题描述】:

首先我是一个真正的 Laravel 初学者,所以我会尽量描述我的问题。

我正在使用 Laravel 构建一个网站,但是有关用户的信息不会存储在我的服务器上,而是外部存储在另一台服务器上。

访问用户数据的唯一方法是通过外部 API;我不允许访问他们的数据库。 API 请求返回一个令牌,我使用此令牌与他们的服务器检查用户是否已登录。

我的问题是:我如何对用户进行身份验证,以便我仍然可以使用 Laravel 的开箱即用防护。

使用 Auth::check() 之类的方法来确定用户是否仍然登录非常方便。

【问题讨论】:

您可以在此处查看带有 jwt 包的示例:github.com/tymondesigns/jwt-auth/wiki/Authentication 我看过这个,但这个 JWTAuth 似乎用于使用 Laravel 制作你自己的 API。我不是想制作自己的令牌,而是通过外部 API 给我一个 这里是这个问题的潜在相关答案:laracasts.com/discuss/channels/laravel/… 可能的答案:***.com/q/44021077/1665504(FWIW 这是个坏主意) 你让它工作了吗? 【参考方案1】:

您需要在 app/Http/middleware/Authenticate.php 中修改 Laravel 的默认身份验证中间件,或者您需要创建自己的中间件类来运行您需要的身份验证。在 app/Http/middleware 文件夹中创建一个类并注册该中间件。 https://laravel.com/docs/master/middleware

【讨论】:

以上是关于Laravel - 通过外部 API 进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

创建通过外部 API 进行身份验证的自定义身份验证提供程序?

使用外部 Laravel 护照流明 api 进行 Laravel 客户端身份验证

减少对外部 API 的身份验证调用(Laravel 5.6)

Laravel Passport API:检索经过身份验证的令牌

通过 laravel API 使用 firebase 令牌身份验证

使用 Laravel 验证第三方 JWT