簡體   English   中英

Symfony4 REST API (LexikJWTAuthenticationBundle) 的並發請求

[英]Concurrent requests for Symfony4 REST API (LexikJWTAuthenticationBundle)

我現在有點迷路,可以朝正確的方向推動。

簡而言之

  • PHP Symfony 4 項目(大部分是默認配置),托管在 Google Cloud App Engine 上
  • REST API,通過LexikJWTAuthenticationBundle進行身份驗證
  • 請求需要在每個請求上傳遞身份驗證令牌(Symfony 防火牆是stateless: true
  • 單頁應用程序作為 API 消費者(React 前端)

在我的用例中,一個經過身份驗證的用戶打開頁面X 在此頁面上,需要從后端加載三個不同的數據部分。 因此,我要獲取三個 API 端點。

打開頁面時,這三個請求不是同時執行的,而是相互等待的。 這個SO question 中已經提到,Symfony 不支持對一個用戶 session 的並發請求,或者可以手動關閉打開的 session。 因為我根本不使用會話,所以我不想搞亂關閉隨機的東西。

但我的問題是:我相信有一個無狀態的 API,其中用戶沒有存儲在服務器 session 中。 我必須在每個請求上傳遞 JWT 令牌。

-> 是否有可能讓三個經過身份驗證的請求與無狀態的 REST API 並行服務 - 或者一旦“涉及用戶”就不可能了嗎?

僅供參考:嘗試對未經身份驗證的端點的三個請求向我顯示並行請求。

代碼片段

安全性.yaml

    firewalls:
        login:
            pattern:  ^/api/v1/login
            stateless: true
            anonymous: true
            json_login:
                check_path:               /api/v1/login_check
                success_handler:          lexik_jwt_authentication.handler.authentication_success
                failure_handler:          lexik_jwt_authentication.handler.authentication_failure

        api:
            pattern:   ^/api/v1
            stateless: true
            access_denied_handler: App\Security\AccessDeniedHandler
            guard:
                authenticators:
                    - lexik_jwt_authentication.jwt_token_authenticator


    access_control:
        - { path: ^/api/v1/, role: IS_AUTHENTICATED_FULLY }

好吧,沒關系,這是我的暫存環境的配置問題。 對於我測試的 API 端點,創建了 session。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM