【发布时间】:2012-04-16 02:08:55
【问题描述】:
我有一个 REST API 和该 API 的前端,它们都是用 Symfony2 编写的。
在前端,我编写了一个自定义用户提供程序来在前端创建一个用户对象,基于来自后端的信息,如(散列)密码、盐等。
根据本文档:http://symfony.com/doc/current/cookbook/security/custom_provider.html
但是,对于我的大多数 API 请求,我需要 HTTP Basic 身份验证凭据。但据我所知,对于 Basic,我需要明文密码。我在前端没有,我只有自定义用户提供程序的散列版本。
我能否以某种方式使用带有该哈希密码版本的 HTTP 基本版本?
或者我可以在前端拦截登录表单的 _username 和 _password 字段,并将它们保存在会话中(不确定这是否正确,但现在可以修复它)
我尝试了后者,通过将登录表单发布到我自己的 URL 而不是“login_check”,所以我可以看到 _username 和 _password 字段,但之后我需要将其转发到 '/login-check ' 让 Symfony2 做到这一点很神奇。但是这一直失败,因为他“找不到控制器”(正常使用时,Sf2 在没有我设置控制器的情况下拦截 login_check 调用,但我想当你开始弄乱它时它不会)
欢迎任何建议,
干杯,
节食
【问题讨论】:
-
为什么不为后端和前端使用相同的防火墙?
-
你能详细说明你的意思吗?我不认为我跟随。两种防火墙的情况完全不同:后端由 http basic auth 组成,是无状态的,而前端肯定不能是无状态的,需要通过表单进行身份验证,而不是 HTTP Basic。