从android设备登录symfony

时间:2012-10-20 12:11:38

标签: android symfony fosfacebookbundle

我有一个用户通过Facebook登录的Android应用程序。我试图访问我的symfony api而无需另一次登录。是否可以使用我从Android应用程序获取的访问令牌登录symfony?

2 个答案:

答案 0 :(得分:1)

是的,有可能。您需要实现custom authentication provider,可能还需要custom user provider来使用令牌对用户进行身份验证(并可能通过令牌检索他)。

答案 1 :(得分: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);

感谢您的链接!