我有一个用 PHP ( Slim framework ) 编写的 REST API,我的 API 包含一些用于管理私有(private)数据的管理路由。我已经实现了 oAuth2.0 授权(this php implementation)。
我喜欢使用 AngularJS 创建管理网络应用程序,以便用户可以管理自己的数据。
我现在正在使用用户名-密码流程,但我读到这并不安全,因为我的网络应用公开了 client_id 和 client_secret。
我还研究了隐式授权(专为公共(public)客户设计),但它说它应该用于只读目的。
我还想使用此 API 为移动应用程序提供数据。用户无需为此登录,但数据不公开。
哪种 oauth 授权适合这种情况/设置?
最佳答案
查看 Resource Owner Password Credentials Grant
。这是您提供的第二个链接中的第 4 个要点。 密码(用户凭据)
https://www.rfc-editor.org/rfc/rfc6749#section-4.3
简单地说:
- 用户发送他们的
登录名
和密码
- 服务器授予用户
access_token
(相当于旧的cookie session id) - 用户发送
access_token
及其剩余的请求
此外, 如果您想在保护数据私密性的同时授予移动设备访问权限,我建议生成链接到移动 mac 地址的“免费”帐户。然后让他们通过上述身份验证,并将他们的 mac 地址作为登录名/密码为空。这样一来,您就可以在每个设备上通过节流/禁止/升级/等方式将相同的用户逻辑实现到移动设备上。
关于php - 将 angularjs webapp 连接到 REST API (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23675765/