2014-05-14 37 views
2

我正在使用FOSRestBundle中的基本身份驗證。通過CURL命令來檢查我的API,表明它完美地工作。如何在使用基本身份驗證時識別用戶?

但是現在,我想知道確定執行POST操作的用戶(想象一下,用戶想要發表評論!該用戶是誰?)。事實上,正如您在下面的CURL命令中看到的,用戶和他的密碼以base64編碼。

# POST 
curl -v -H "Accept: application/json" \ 
-H "Content-type: application/json" \ 
-H "Authorization: Basic YW1pbmU6c3RpZ21hdGFn" \ 
-X POST -d '{"test":{"x":"Amine","y":"Jallouli"}}' 
http://localhost/tuto/web/app_dev.php/api/v1/test/add 

有什麼建議嗎?

僅供參考,這是我在security.yml

firewalls: 
    #..... 
    rest_api: 
     pattern: ^/api/ 
     stateless: true 
     http_basic: 
      provider: fos_userbundle 
+2

你應該能夠使用的安全上下文來獲取用戶在您的控制器,'$ user = $ this-> get('security.context') - > getToken() - > getUser();' – Sehael

回答

2

你應該利用這個@amine配置

$user = $this->get('security.context')->getToken()->getUser();