gpt4 book ai didi

php - OAuth 2 适用于我拥有的移动客户端

转载 作者:搜寻专家 更新时间:2023-10-31 20:48:55 25 4
gpt4 key购买 nike

我有一个公开 REST API 的 LAMP 堆栈网络应用程序。目标是拥有 3 层——数据库、服务 (REST) 和多个前端客户端(网站、Android、iPhone)。目前,这些层都在同一个盒子上。网站使用API​​调用服务逻辑进行增删改查操作,移动客户端尚未搭建。

我正在使用 PHP bcrypt 实现来存储用户凭据。这在设计上很慢/CPU 密集型。每个 API 调用都需要用户名/密码对以及 API 参数。这将阻碍大规模扩展,因为每次 API 调用都会计算哈希值。

所以,我一直在寻找替代方案。 OAuth 2.0 使用使用起来并不昂贵的可撤销 token ,但我读过的文章似乎表明此协议(protocol)的主要用例是让第三方访问我的 API。这不太适合我的模型,因为例如,移动客户端归我所有。

  1. OAuth 是仅供第三方使用,还是通常公司将其移动客户端添加为自己 API 的 OAuth 消费者?

  2. 是否可以将共享 key 与我发布到应用市场的 Android/iPhone 应用捆绑在一起,以便它们能够立即与 API 相关联?

最佳答案

oAuth v2 ( http://oauth.net/2/ ) 有多种身份验证模式(总共 6 种),虽然最终用户授权第三方应用程序的“三足”场景是最明显的,但即使您拥有应用程序。

您可以潜在地使用两条腿的流程,例如受信任的凭据流程 https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-25#section-4.3 .基本上,您信任客户端代码(您编写的)接收和查看用户的用户名和密码并将其发送到您的 API。一旦完成,oAuth token 就会像往常一样发出,密码不需要再次跨越连接。

关于共享 key 的第二个问题 - 如果您的应用程序始终需要用户登录,那么您可以避免将共享 key 放入应用程序,因为您的身份验证依赖于用户凭据(在这种情况下,只需将 ID 放入应用程序,以便您知道它是哪个版本)。如果应用程序在某些模式下无需用户登录即可运行,那么您可能别无选择,只能至少在初始步骤中嵌入某种 secret 。

关于php - OAuth 2 适用于我拥有的移动客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10309667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com