将数据发布到 Silex 应用程序(使用 cnam/security-jwt-service-provider 的 jwt 身份验证)

Posting data to Silex app ( jwt authentication using cnam/security-jwt-service-provider )

我正在使用 silex 微框架创建 Web 服务。这是我第一次使用它,我对 symfony 没有任何先验知识。我能够理解 silex 的工作原理以及如何编写控制器提供程序、服务提供程序等..

我无法为我的网络服务制定身份验证。 我想使用 JWT 身份验证,我发现这个 cnam/security-jwt-service-provider 扩展 firebase/php-jwt.

我设置正确,当我访问受保护的资源时得到这个输出

{"message":"A Token was not found in the TokenStorage."} 

这是正确的。

问题:我想post申请用户名和密码并取回令牌。 (用户名=admin,密码=foo) 我正在使用 postman chrome 扩展(也使用 Advanced rest client)将 post 值变为 url(http://silex.dev/api/login

Post 我正在发送的数据

键=>用户名值=>管理员 密钥=> 密码值=> foo

我也试过了

Key=>_usernameValue=>admin 键=> _密码值=> foo

Aldo 在基本身份验证中尝试了密钥值对 headers。

响应我得到 id

{
  "success": false,
  "error": "Invalid credentials"
}

当我调试应用程序时,我根本看不到 post 数据。 $vars = json_decode($request->getContent(), true); 我得到 null $var.

PS:我知道如果我得到这些值 post 正确,我将得到一个有效的令牌,因为我在断点中将值从空值编辑为正确值。

显然我应该以 json 格式发送数据并且应该设置内容类型 appication/json

例如:

{
  "_username":"admin",
  "_password":"foo"
}

响应会像

{
  success: true
  token: "eyJ0eXAiOisKV1diLCJfbGgiOhJIjzI1NiJ9.eyJuYW1lIjoiYWRtaW4iLCJleHAiOjE0Mzk5MDUxMjh9.DMdXAv2Ay16iI1UQbHZABLCU_gsD_j9-gEU2M2L2MFQ"

}