从我研究过的选项是:
基本身份验证通过HTTPS – 检查每个请求的用户的用户名/密码.
会话 – 发送每个请求的会话ID;服务器维护状态.所以应用程序会在后续请求中发送登录用户的用户名/密码和服务器检查,就像我的网站一样.
API令牌 – 移动应用发送用户名/密码并接收到令牌,然后将其附加到后续请求.令牌存储在DB中并检查每个请求.
我猜我的API令牌的解释是不正确的,因为它们与会话看起来是一样的,因为我在DB中存储会话ID.
>我可以更正我对API令牌的解释.他们是什么它们与会话ID的区别如何?
> API令牌的优点是什么?
> oAuth(如果我们简化它的用途)只是一个用于创建“API令牌”的协议?
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安全方法.