POST https://dev.pixplay.fr/api/display/heartbeat

Security

Token

display:16 Username
Authenticated
Property Value
Roles
[
  "ROLE_DISPLAY"
]
Inherited Roles none
Token
Lexik\Bundle\JWTAuthenticationBundle\Security\Authenticator\Token\JWTPostAuthenticationToken {#940
  -user: App\Security\DisplayJwtUser {#770 …}
  -roleNames: [
    "ROLE_DISPLAY"
  ]
  -attributes: []
  -firewallName: "api_device"
  -token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE3ODQzMDg5MjksImV4cCI6MTc4NDMxMjUyOSwic3ViIjoiZGlzcGxheToxNiIsInJvbGVzIjpbIlJPTEVfRElTUExBWSJdfQ.xUJGUEJU0Rnk3yfab2aeHHQS7B8htQgtzGxFLIEP_YsJ_QD2E7aeVn-Ka1FC_sNnV2sema9XPfmWi_M3dnfA76g1Up2_PNZl5cQvajw8aflS8YJNIaw-ht_Cp8ctpU8fyAt-QB3V86qOSIo9wpFnh4VMSBY3zINEnOIQmJqlrCFc22rmFw8k6BJEQA3wFDEQeL7jz8k5Boh8yxV1kV82NRJaX4X0np2Jq7TA04LbeFu6oqTAzTb6VeFMxoKHUvxVQwCAvAIW2d6yv8TlhaxHOnDB1_za1FZa_3P_fQYJ7BtyPaj9aKffTnzYhgsXwR3UnYid7jjo2mYh2Cr78VkDXg"
}

Firewall

api_device Name
Security enabled
Stateless

Configuration

Key Value
provider App\Security\DisplayJwtUserProvider
context (none)
entry_point security.authenticator.jwt.api_device
user_checker security.user_checker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "jwt"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#435
  -map: Symfony\Component\Security\Http\AccessMap {#434 …}
  -logger: Symfony\Component\HttpKernel\Log\Logger {#192 …}
  -httpPort: 80
  -httpsPort: 443
}
(none) (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#499
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#480 …}
}
22.52 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#501
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#235 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#239 …}
  -map: Symfony\Component\Security\Http\AccessMap {#434 …}
}
0.39 ms (none)

Authenticators

Status Authenticator
success
"Lexik\Bundle\JWTAuthenticationBundle\Security\Authenticator\JWTAuthenticator"
Lazy no
Duration 1.66 ms
Passport
Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport {#436
  #user: App\Security\DisplayJwtUser {#770 …}
  -badges: [
    "Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge" => Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge {#504
      -userLoader: Closure($userIdentifier) {#506 …}
      -user: App\Security\DisplayJwtUser {#770 …}
      -identifierNormalizer: null
      -userIdentifier: "display:16"
      -attributes: null
    }
  ]
  -attributes: [
    "payload" => [
      "iat" => 1784308929
      "exp" => 1784312529
      "sub" => "display:16"
      "roles" => [
        "ROLE_DISPLAY"
      ]
    ]
    "token" => "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE3ODQzMDg5MjksImV4cCI6MTc4NDMxMjUyOSwic3ViIjoiZGlzcGxheToxNiIsInJvbGVzIjpbIlJPTEVfRElTUExBWSJdfQ.xUJGUEJU0Rnk3yfab2aeHHQS7B8htQgtzGxFLIEP_YsJ_QD2E7aeVn-Ka1FC_sNnV2sema9XPfmWi_M3dnfA76g1Up2_PNZl5cQvajw8aflS8YJNIaw-ht_Cp8ctpU8fyAt-QB3V86qOSIo9wpFnh4VMSBY3zINEnOIQmJqlrCFc22rmFw8k6BJEQA3wFDEQeL7jz8k5Boh8yxV1kV82NRJaX4X0np2Jq7TA04LbeFu6oqTAzTb6VeFMxoKHUvxVQwCAvAIW2d6yv8TlhaxHOnDB1_za1FZa_3P_fQYJ7BtyPaj9aKffTnzYhgsXwR3UnYid7jjo2mYh2Cr78VkDXg"
  ]
}
Badges UserBadge

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\RoleVoter"

Access decision log

# Result Attributes Object
1 GRANTED ROLE_DISPLAY
Symfony\Component\HttpFoundation\Request {#2
  +attributes: Symfony\Component\HttpFoundation\ParameterBag {#15 …}
  +request: Symfony\Component\HttpFoundation\InputBag {#5 …}
  +query: Symfony\Component\HttpFoundation\InputBag {#10 …}
  +server: Symfony\Component\HttpFoundation\ServerBag {#18 …}
  +files: Symfony\Component\HttpFoundation\FileBag {#17 …}
  +cookies: Symfony\Component\HttpFoundation\InputBag {#16 …}
  +headers: Symfony\Component\HttpFoundation\HeaderBag {#19 …}
  #content: "{"appVersion":"0.0.1+3","platform":"android","deviceTimezone":"Europe/Paris","deviceTime":"2026-07-17T19:33:08.028356","planningVersion":"7fdff742aec9be87c2d81fe7a0c215363406b7f138e7b9c496d049da235d0d83","currentPlanningId":22,"currentMediaId":42,"currentMediaStartedAt":"2026-07-17T19:33:00.004356","playbackPositionMs":8024,"isPlaying":true,"screen":{"width":960,"height":540},"error":"Synchronisation impossible, planning local conservé"}"
  #languages: null
  #charsets: null
  #encodings: null
  #acceptableContentTypes: null
  #pathInfo: "/api/display/heartbeat"
  #requestUri: "/api/display/heartbeat"
  #baseUrl: ""
  #basePath: null
  #method: "POST"
  #format: null
  #session: Symfony\Component\HttpFoundation\Session\Session {#1588 …}
  #locale: null
  #defaultLocale: "en"
  -preferredFormat: null
  -isHostValid: true
  -isForwardedValid: true
  -isSafeContentPreferred: ? bool
  -trustedValuesCache: []
  -isIisRewrite: false
  basePath: ""
  format: "html"
}
"Symfony\Component\Security\Core\Authorization\Voter\RoleVoter"
GRANTED
The user has ROLE_DISPLAY.
Show voter details
2 GRANTED ROLE_DISPLAY
null
"Symfony\Component\Security\Core\Authorization\Voter\RoleVoter"
GRANTED
The user has ROLE_DISPLAY.
Show voter details