1

我有一个用户通过 facebook 登录的 android 应用程序。我正在尝试访问我的 symfony api 而无需再次登录。是否可以仅使用我从 android 应用程序获得的访问令牌登录到 symfony?

4

2 回答 2

1

好的,这只是对我设法做的事情的总结。

我试图修改 fosFacebookBundle 以接受 access_tokens 但最终我不得不按照从 Zalas 获得的链接从头开始做所有事情。我通过 fosFacebookBundle 中的 FacebookProvider 类从 accesstoken 获取用户。

我不得不将 Facebook 和 FacebookProvider 注入我的 FacebookTokenListener。我什至不确定这是安全的。有人可能能够使用来自另一个站点的访问令牌登录(我还没有测试过)。访问令牌也在标头中以明文形式出现。总而言之,这不是一个很好的解决方案。

        $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);

感谢您的链接!

于 2012-10-22T13:33:09.650 回答
1

对的,这是可能的。您需要实现一个自定义身份验证提供程序,可能还需要一个自定义用户提供程序来使用令牌对用户进行身份验证(并可能通过令牌检索他)。

于 2012-10-20T15:24:41.880 回答