我有一个用户通过Facebook登录的Android应用程序。我正在尝试访问我的Symfony API而不在其他时间登录。是否可以使用我从Android应用中获得的访问令牌登录到Symfony?
是的,这是可能的。您需要实现自定义身份验证提供商和可能的自定义用户提供商,以用令牌对用户进行身份验证(并可能通过令牌检索他)。
好的,只需包装我设法做的事情。
我试图修改fosfacebookBundle以接受Access_tokens,但最终我只需要按照从Zalas获得的链接来完成所有工作。我通过fosfacebookBundle的Facebook -Provider类从访问中获取了用户。
我不得不将Facebook注入Facebook -provider,并将其注入我的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);
感谢您的链接!