什么是 API 令牌 [已关闭]

2022-08-30 14:38:04

我正在尝试找出处理我的移动应用程序(iOS和Android)和API(PHP)的用户身份验证的最佳方法。

根据我的研究,这些选项是:

通过 HTTPS 进行基本身份验证 - 检查每个请求的用户用户名/密码。

会话 - 为每个请求发送会话ID;服务器维护状态。因此,应用程序在后续请求中为登录用户发送用户名/密码和服务器检查,就像我的网站一样。

API 令牌 - 移动应用发送用户名/密码并接收回令牌,然后将其附加到后续请求中。令牌存储在数据库中,并在每个请求上进行检查。

我猜我对API令牌的解释是不正确的,因为它们似乎与会话相同,因为我将会话ID存储在数据库中。

  1. 我可以纠正我对API令牌的解释吗?他们是干什么的?它们与会话 ID 有何不同?
  2. API 令牌有哪些优势?
  3. oAuth(如果我们要简化其使用)只是一个用于创建“API令牌”的协议吗?

答案 1

我不是专家,但我会给你几美分,我已经拿起了:

1)API令牌是一个通用术语。通常,API 令牌是请求访问服务的应用程序的唯一标识符。您的服务将生成一个 API 令牌,供应用程序在请求服务时使用。然后,您可以将他们提供的令牌与您存储的令牌相匹配,以便进行身份验证。

可以使用会话 ID,但其用途与 API 令牌不同。会话 ID 不是一种身份验证形式,而是授权的结果。通常,一旦用户被授权使用资源(例如您的服务),就会建立会话。因此,当用户被授予对资源的访问权限时,将创建会话 ID。API 令牌是类似于用户名/密码的身份验证形式。

2)API令牌是通过HTTP发送一些用户名/密码组合的替代品,这是不安全的。但是,问题仍然存在,有人可以取而使用API令牌。

3)在某种程度上是的。这是一种保持API令牌“新鲜”的方法。当您想要使用服务时,您无需传递相同的 API 令牌,而是请求访问令牌。OAuth 2.0 步骤如下:
a) 使用某种
凭据发送到服务的请求 b) 成功响应返回代码 c) 使用代码

对服务发出另一个请求 d) 成功响应返回访问令牌,用于从那时起对每个 API 请求进行签名,直到完成。

目前,许多较大的服务提供商都使用OAuth 2.0。这不是一个完美的解决方案,但它可能是目前使用的最安全,最广泛的API安全方法。


答案 2

推荐