我有一个用
PHP编写的REST API(
Slim framework),我的API包含一些用于管理私有数据的管理路由.我已经实施了oAuth2.0授权(
this php implementation).
我喜欢使用AngularJS来创建管理Web应用程序,以便用户可以管理自己的数据.
我现在正在使用用户名密码流,但我知道这不安全,因为我的webapp暴露了client_id& client_secret.
我还研究了隐式授权(为公共客户设计),但它说它应该是只读目的.
我还想使用此API为移动应用程序提供数据.用户无需为此登录,但数据不公开.
哪个oauth授权适用于此场景/设置?
解决方法
查看资源所有者密码凭据授予.这是您提供的第二个链接中的第4个项目符号点.密码(用户凭证)
http://tools.ietf.org/html/rfc6749#section-4.3
简单的说:
>用户发送他们的登录名和密码
>服务器授予用户access_token(相当于旧的cookie会话ID)
>用户发送access_token及其余的请求
也,如果你想让移动设备访问同时保持数据私密,我建议生成链接到移动mac地址的“免费”帐户.然后让他们通过上面说的身份验证,他们的mac地址作为登录/密码为空.这样,您可以使用每个设备的throttle / ban / upgrade / etc为移动设备实现相同的用户逻辑.