【发布时间】:2016-04-04 19:40:49
【问题描述】:
我对身份验证有疑问。 身份验证方法有很多(JWT、cookies、Session),我的问题很简单,每当用户请求新资源时,客户端都会向服务器发送一些东西(例如标头中的 Jwt),但是我必须放在哪里检查 Jwt 或 cookie 或会话的代码?如果我使用 PHP,没有 MVC,我必须在任何时候包含类或调用一些静态方法?在 Symfony 中我必须使用事件?
【问题讨论】:
-
通常由中间件处理。
-
@ceejayoz 确切地说,我使用 node 和 express,我使用 app.use 来检查 JWT,但是我该如何在 php 和 Symfony 中做呢?
-
你可以在 PHP/Symfony 中做中间件。对于 Symfony,symfony.com/doc/current/cookbook/event_dispatcher/…。对于您自己的 PHP,您必须构建一个解决方案。
-
实际实现很大程度上取决于您的实际用例和您使用的 Symfony 版本。你能再解释一下你的情况吗?
-
在 Symfony 3 中,我建议您查看新的 Guard 组件,它可以更轻松地处理身份验证(参见 symfony.com/blog/… 和 knpuniversity.com/blog/guard-authentication)。关于授权,您应该阅读voters。还有一个ACL component,但在 99% 的常见用例中都不需要它。