2012-10-20 2 views
1

У меня есть приложение для Android, в которое пользователь входит в систему через facebook. Я пытаюсь получить доступ к моему symfony api без входа в другое время. Можно ли подключиться к symfony только с помощью токена доступа, который я получаю от приложения Android?Войдите в Symfony от Android-устройства

ответ

1

Да, это возможно. Вам нужно будет реализовать custom authentication provider и, возможно, custom user provider, чтобы аутентифицировать пользователя с помощью токена (и, возможно, получить его с помощью токена).

1

Хорошо, так что просто обертка того, что мне удалось.

Я попытался изменить fosFacebookBundle, чтобы принять access_tokens, но в конце дня мне пришлось просто делать все с нуля, следуя ссылкам, которые я получил от Заласа. Я получил пользователя от accesstoken через класс FacebookProvider в fosFacebookBundle.

Мне пришлось вводить 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); 

Спасибо за ссылки!

 Смежные вопросы

  • Нет связанных вопросов^_^