2012-10-20 70 views
1

我有一個用戶通過Facebook登錄到的Android應用程序。我正在嘗試訪問我的symfony api而無需另行登錄。是否有可能登錄到symfony只有從Android應用程序獲得的訪問令牌?從Android設備登錄到symfony

回答

1

好吧,只是我設法做的一個總結。

我試圖修改fosFacebookBundle來接受access_tokens,但是在一天結束的時候我不得不從頭開始按照我從Zalas獲得的鏈接做所有事情。我通過fosFacebookBundle中的FacebookProvider類從accesstoken中獲得了用戶。我不得不將Facebook和FacebookProvider注入到我的FacebookTokenListener中。我甚至不確定這是安全的。有人可能能夠從另一個網站登錄訪問令牌(我還沒有測試過)。 accesstoken在標題中也是明文的。總而言之,這不是一個很好的解決方案。

 $this->facebook->setAccessToken($request->headers->get("access_token")); 
     $fbUid = $this->facebook->getUser(); 
     if(!$fbUid){ 
      throw new AccessDeniedHttpException("invalid access token"); 
     } 
     $user = $this->facebookProvider->findUserByFbId($fbUid); 
     $token = new FacebookTokenToken($user); 

感謝您的聯繫!