【问题标题】:'Offline' access with HybridAuth使用 HybridAuth 进行“离线”访问
【发布时间】:2012-10-20 07:45:57
【问题描述】:

我已经在我的 Facebook 应用程序中使用 HybridAuth 授权了一个用户,并将他的 access_token 存储在我的数据库中。

几天后,当用户不在线时,我想获取他的新 Facebook 朋友,也使用 HybridAuth。

我可以从他的 access_token 中“重新创建”该用户以获取他的朋友、发送通知等吗?

谢谢!

【问题讨论】:

    标签: facebook hybridauth hybridauthprovider


    【解决方案1】:

    我终于找到了一个可行的方法,我会把它留在这里,让下一个寻找它的人。如果您确保您的用户和应用拥有有效的令牌,HybridAuth 不应尝试重定向或返回任何错误

    (我正在使用 Codeigniter,但将其转换为“纯”HybridAuth 应该很简单:

        $token = "GET A TOKEN IN Facebook's API EXPLORER";
        $this->load->library('HybridAuthLib');
        $this->hybridauthlib->storage()->set( "hauth_session.facebook.is_logged_in", 1 );
        $this->hybridauthlib->storage()->set( "hauth_session.facebook.token.access_token", $token );        
        $service = $this->hybridauthlib->authenticate('Facebook');
    
        if ($service->isUserConnected()){
    
            $user_profile = $service->getUserProfile();
            $contacts = $service->getUserContacts();
            $access_token = $service->getAccessToken();
    
            var_dump($user_profile);
            var_dump($contacts);
            var_dump($access_token);
    
        }else{
            echo "something went wrong";
        }
    

    【讨论】:

    • 你不是覆盖当前登录用户的 oauth 令牌(即查看个人资料页面的那个)吗?或者,也许您只是在内部设置访问令牌以供 HybridAuth 运行? IIRC authenticate() 方法在完成时为用户设置会话数据 - 这不会在您的 Web 应用程序中造成重大安全漏洞吗?澄清可能会有所帮助;我面临着类似的问题。谢谢
    • 我在服务器端进程(由 cron 处理)中使用它来异步发布存储在数据库中的操作,没有用户登录 - 用户无法访问它。如果将通过浏览器访问,则行为将是您所说的行为
    • 我用它来处理通过 javascript 界面检索到的令牌。它也适用于其他社交服务提供商,例如 google plus 等。非常感谢您的帖子。
    • 这个答案救了我 :D 谢谢 :)
    • 我认为这应该是核心功能的一部分。有时您只是从 HybridAuth 之外获取 access_token。
    【解决方案2】:

    虽然上述方法可能有效,但我认为推荐的方法可能是使用此处所述的“持久会话”: http://hybridauth.sourceforge.net/userguide/HybridAuth_Sessions.html

    【讨论】:

      猜你喜欢
      • 2017-09-19
      • 2010-10-21
      • 2015-11-10
      • 2011-06-23
      • 2017-04-29
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多