用于自定义 Rest API 的最佳身份验证类型?

Posted

技术标签:

【中文标题】用于自定义 Rest API 的最佳身份验证类型?【英文标题】:Best type of Authentication to use for a custom Rest API? 【发布时间】:2016-11-06 12:03:10 【问题描述】:

我们必须创建一个用 php 编写的自定义 API,它将向各种利益相关者公开数据。这些利益相关者将可以访问以下功能:

getUserDetails($uid) getUserProducts($uid) getUserDevices($uid)

(以后可能会更多......)

我的问题是我正在尝试确定对 API 用户进行身份验证的最佳方式。我认为 OAuth 会是正确的选择,但在阅读 this 之后,我得到的印象是 OAuth 仅用于通过 Facebook 或 Gmail 等登录。

所以我的问题实际上是这样的:在创建外部利益相关者可以使用的 PHP API 时,最好使用什么类型的身份验证?在这种情况下 OAuth 是否相关?

【问题讨论】:

身份验证 is 登录,所以我不清楚你试图做出的区分。 OAuth 是这方面的标准,这就是 Google/Facebook/Twitter/等的原因。所有人都使用它来验证对其 API 的请求。你也应该这样做。 【参考方案1】:

如果您希望外部利益相关者调用您的 API,只需向每个外部利益相关者颁发一对 API 密钥和 API 密钥。您不必实施 OAuth。关于问题“OAuth (Access Token) Vs API Key”,另请参见this answer。

【讨论】:

【参考方案2】:

Oauth2 是最好的解决方案?

【讨论】:

为什么 oauth 是最好的解决方案?【参考方案3】:

Oauth 是确保 REST 应用安全的最佳选择

你可以使用这个库来实现你自己的 oauth 系统

https://github.com/bshaffer/oauth2-server-php

它很容易理解和

【讨论】:

以上是关于用于自定义 Rest API 的最佳身份验证类型?的主要内容,如果未能解决你的问题,请参考以下文章

用于身份验证的 REST API URL 的最佳实践

API REST 的 symfony 5 自定义身份验证

Spring Boot - 使用自定义 PreAuthorize 表达式和身份验证测试 Rest Api

如何在 Laravel 中为 REST API 创建身份验证

使用 Django rest 框架在两个 api 之间配置身份验证的最佳方法是啥?

在 laravel 中使用 REST API 的最佳身份验证方法是啥?