Jul*_*nci 2 authentication json symfony symfony-3.3
我想尝试使用 Symfony 3.3 的新 json_login ..按照文档进行一个干净的项目..但防火墙完全忽略 json_login 部分。我收到一条错误消息,指出控制器未返回响应。
我正在下面粘贴我的 security.yml ..
security:
providers:
db_provider:
entity:
class: IgsemAuthBundle:User
property: email
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_USER: IS_AUTHENTICATED_ANONYMOUSLY
encoders:
Igsem\AuthBundle\Entity\User:
algorithm: bcrypt
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: ~
provider: db_provider
json_login:
check_path: check
access_control:
- { path: ^/secure, roles: ROLE_ADMIN }
Run Code Online (Sandbox Code Playgroud)
我还有一个带有注释的检查路线的控制器:
/**
* @Route("/check", name="check")
*/
public function checkAction(Request $request, AuthenticationUtils $authUtils)
{
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用路径、使用的名称以及相对路径登录或 /login 以及其他一些组合..al 具有相同的
谢谢您的帮助
文档中没有明确提及这一点,但要使此配置起作用,您需要让请求指定"Content-Type": "application/json"标头。否则,请求只会传递到控制器,而不会被安全侦听器处理。
另外,无论是否是设计使然,您仍然希望实现控制器的响应,因为 - 至少在我的 Symfony 3.3.14 上 -Response并不是按照文档中所述创建的。因此,虽然用户经过身份验证(或因错误的凭据而出错),但我仍然需要Response自己设计(这对我来说没问题,至少我保留对响应格式/结构的控制)。