我有一个 LAMP-stack webapp,它公开了一个 REST API。目标是拥有 3 层 - 数据库、服务 (REST) 和多个前端客户端(网站、Android、iPhone)。目前,这些层都在同一个盒子上。网站使用 API 调用服务逻辑进行 CRUD 操作,移动客户端尚未构建。
我正在使用 PHP bcrypt 实现来存储用户凭据。这在设计上很慢/ CPU 密集型。每个 API 调用都需要一个用户名/密码对以及 API 参数。这将阻碍大规模扩展,因为每次 API 调用都会计算哈希值。
所以,我一直在寻找替代方案。OAuth 2.0 使用不昂贵的可撤销令牌,但我读过的文章似乎表明该协议的主要用例是让第三方访问我的 API。这不太适合我的模型,例如,移动客户端归我所有。
OAuth 是否仅适用于第三方,或者公司通常会将其移动客户端添加为自己的 API 的 OAuth 消费者?
是否可以将共享密钥与我发布到应用市场的 Android/iPhone 应用捆绑在一起,以便它们能够立即与 API 关联?