我有一个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调用,但我想当你开始搞乱它时它就没有了)
欢迎任何建议,
干杯,
迪特
答案 0 :(得分:0)
如果在将密码传输到服务器之前对密码进行了哈希处理,则此哈希密码将成为新密码。
HTTP Basic Auth通常用作RESTful身份验证方法,但必须通过SSL 。如果您使用加密随机数作为会话ID,则仍需要通过SSL为所有请求传递此值,否则您将违反OWASP A9并且所有用户都可能遭到入侵。