保护由 angular 前端消耗的 Symfony RESTful API?

Securing Symfony RESTful API consumed by angular front?

我已经设置了一个基于 Symfony 的 API,它被完全依赖于它的 Angular 前端使用(包括用户注册)

我已经阅读了多个建议使用 WSSE 或 FOSOAuthServerBundle 的线程,但我不确定最佳方法?

如果我理解正确,WSSE 必须为每个 API 请求发送 x-wsse headers,这让我认为它不是最适合性能的。

关于 FOSAuthServerBundle 我从未使用过它,与 WSSE 相比,我觉得它有点复杂,因此这就是为什么我在尝试实现它之前询问那里的原因。

我有 2 个简单的用户组(基本和管理员),保护我的 API 的最佳方法是什么,此外还提供了一种简单的方法来保持用户持久性(我的意思是通过不同的页面访问)?

在Angular正面应该怎样?

感谢您的帮助。

参考文献:http://blog.tankist.de/blog/2013/07/16/oauth2-explained-part-1-principles-and-terminology/

http://obtao.com/blog/2013/06/configure-wsse-on-symfony-with-fosrestbundle/

这完全取决于您的要求。

首先,OAuth 2 是一种身份验证 mechanism/spec,您可以将其与 sessions/bearer 令牌结合使用/...这也适用于本地帐户(因为您想进行用户注册).

FOSAuthServerBundle 是一个用于实现 OAuth2 规范的服务器端的包。这基本上意味着您可以将 API 的 OAuth2 端公开给其他应用程序,并允许它们使用您的帐户进行身份验证。考虑 google 登录、twitter 登录等,但用于您自己的应用程序。

这一切都与您在初始登录后验证/授权您的请求的方式无关。

是否要实现无状态身份验证?那么我建议使用新的 JSON Web Token (JWT) 规范。

Symfony Bundle (LexikJWTAuthenticationBundle) and JWT description (JWT.io)

angular 方面有很多资源,API 部分非常简单。

WSSE 似乎不适合在 RESTful API 中实施,而且我没有经验 using/implementing 所以我不能对它发表太多评论。