php - 什么是 API token

标签 php android ios api authentication

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

根据我的研究,选项是:

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

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

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

我猜我对 API token 的解释是不正确的,因为它们看起来与 session 相同,因为我将 session ID 存储在数据库中。

  1. 能否更正我对 API token 的解释。它们是干什么用的?它们与 session ID 有何不同?
  2. API token 有哪些优势?
  3. oAuth(如果我们要简化它的使用)只是一种用于创建“API token ”的协议(protocol)吗?

最佳答案

我不是专家,但我会给你几美分我捡到的:

1) API Tokens 有点笼统。通常,API token 是请求访问您的服务的应用程序的唯一标识符。您的服务将生成一个 API token 供应用程序在请求您的服务时使用。然后,您可以将他们提供的 token 与您存储的 token 进行匹配以进行身份​​验证。

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

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

3) 在某种程度上是的。这是一种保持 API token “新鲜”的方法。当您想要使用服务时,您请求访问 token ,而不是传递相同的 API token 。 OAuth 2.0步骤如下:
a) 使用某种凭证发送到服务的请求
b) 成功响应返回代码
c) 使用代码发出另一个服务请求
d) 成功的响应返回用于签署每个 API 请求的访问 token ,从那时到完成。

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

关于php - 什么是 API token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17784908/

相关文章:

android - 使用facebook-android-SDK获取好友图片

objective-c - iPhone obj-c错误:使用“核心绘图”时分配给只读属性

ios - 在导航标题下添加搜索栏

PHP - 您可以使用 POST 方法将数据长时间流式传输到服务器吗?

php - 如何使用 Alexa 统计信息(公式?)计算网站的页面浏览量

php - 如果我为每个插入请求调用一个方法,我是不是在浪费服务器时间

Android studio 3.0 缺少可绘制文件夹

php - Behat 3 - 将参数(从导入的文件)传递给 FeatureContext 构造函数

android - 如何从 Parse 推送通知记录推送打开

ios - 删除 UITableViewCell 后,出现空白行