使用 PHP Oauth 类创建 API 身份验证

Posted

技术标签:

【中文标题】使用 PHP Oauth 类创建 API 身份验证【英文标题】:Creating API Authentication using PHP Oauth class 【发布时间】:2019-12-04 08:06:21 【问题描述】:

我正在尝试为使用 php 创建的 API 设置 API 身份验证。我的网站(客户端)是使用 React 创建的。我一直在研究,但找不到任何可以解释我需要知道的东西。我使用的主要资源之一是 PHP 文档:

https://www.php.net/manual/en/book.oauth.php

我正在苦苦挣扎的是令牌的生成,我在创建令牌时使用了哪些信息?如何将我的 API 设置为 protected resource

根据我对oauth的了解,客户端将向服务器发送请求以获取请求令牌。一旦获得请求令牌,在回调中,它将使用request token 请求access token。然后,access token 将用于请求访问 API。听起来对吗?

任何帮助将不胜感激。

【问题讨论】:

如果这些是您要保护的 API,我不知道您为什么要走这条路,OAuth 通常用于针对第三方进行验证。 @tim 哦,我明白了。那么您建议我使用什么方法来防止未经授权的呼叫? 【参考方案1】:

Oauth 实现起来相当复杂,主要用于第三方需要在他们自己的代码中对您的用户进行身份验证的情况,或者有复杂的身份验证要求的情况。

您的情况似乎很简单,您是否考虑过仅使用基于会话/cookie 的身份验证,还是使用在服务器端生成的令牌?

【讨论】:

我是否需要使用特定的 PHP API 来生成令牌,或者我可以开发自己的方法?令牌是否需要存储在会话变量或 cookie 中?

以上是关于使用 PHP Oauth 类创建 API 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 OAuth 和 Node.JS 对 JIRA REST API 进行身份验证

OAuth 1.0 在 POSTMAN 和 PHP 代码中生成签名差异

谷歌 gmail api oauth2 身份验证错过了解

使用 Youtube Api v3 和 oauth2 将视频上传到我的 Youtube 频道,无需用户身份验证

这个 API 使用啥 OAuth 协议,是不是有一个标准的 OAuth 库可以用来对其进行身份验证?

Laravel OAuth2 Passport API,生成令牌但无法发出请求:“未经身份验证”