1

我正在 ZF2 中构建 Restful Web 服务 (CURD)。我发现很多关于在 zf2 中构建 RESTful Web 服务的资源,但没有找到关于在 zf2 中使用 acl 进行用户授权的任何资源

我需要一些关于在 zf2 中使用 ACL 作为 Web 服务的一部分来实现身份验证和授权的指导。

每个用户都有一个角色,每个角色都可以访问有限的资源(例如 curd 操作)。

用户将能够根据其在数据库中的权限执行 curd 操作,该权限可以使用特定角色的 RESTful 服务获取。

但是,首先需要使用服务对客户端用户名和密码进行身份验证,并在成功时返回允许的资源列表。我不确定这适合凝乳的什么地方。我打算使用带有 HTTP 摘要的 curl 并返回 json 使用 Post(这是正确的方法吗?还是有更好的选择?)

然后将这些资源加载到acl中以在客户端控制器上进行授权,用户基本信息将保存在会话中以供进一步使用。

每个请求/动作都将在客户端应用程序中(在控制器中)进行/执行,控制器动作将使用 CURL 访问服务以进行 CURD 操作

每个 Curl 服务请求都将使用 http 摘要进一步进行身份验证。

这样,Restfull 服务将只执行 Curd 操作,而 ACL 将在客户端应用程序上处理。

有没有人在 zf2 acl 中实现了 restful 服务和登录身份验证和授权。

抽象图看起来像这样。 在此处输入图像描述

我已阅读以下内容,但仍然不知道这是否是正确的暗示方式。上面有关于 zf2 的任何推荐读物吗?

我如何在 RESTful Web 服务中实现登录

设计-restful-login-service

4

1 回答 1

0

如果您想要处理从客户端应用程序到 API 服务器的身份验证,您应该尝试使用密码授权类型的Oauth2 。它将被实现为POST /oauth端点。然后,来自客户端的每个后续请求都应该有一个Authorization标头,您可以使用它来识别用户并应用 ACL。

但是,由于您使用的是 ZF2,我强烈建议您为此使用Apigility。它与 ZF2 很好地集成,处理身份验证和授权并简化了许多事情。

于 2017-09-09T11:30:37.327 回答