将HybridAuth与Javascript SDK结合使用?

将HybridAuth与Javascript SDK结合使用?

问题描述:

(从https://groups.google.com/forum/?hl=en&fromgroups=#!topic/hybridauth/CWo2R9suYts转推)将HybridAuth与Javascript SDK结合使用?

从Facebook开始,我尝试使用提供者JavaScript SDK登录并让HybridAuth“知道”它。任何帮助,将不胜感激。

我开始时将配置ID包含在传递给View的数据中,以便在调用Javascript登录函数时使用它们。所以在Hybrid_Auth类的GetProviders函数中,我说:

if(array_key_exists('keys', $params) && array_key_exists('id', $params['keys'])) 
$idps[$idpid]['id'] = $params['keys']['id']; 

我的JavaScript包括这样的事情:

FB.init({ 
appId:'<?php echo $providers['Facebook']['id']; ?>', 
cookie:true, 
status : true, 
xfbml:true 
}); 

到目前为止好。

但是,登录后(即FB.login())当然HybridAuth不知道,也没有用户信息。

再到“逼”,我打过电话通过Ajax的“.../hauth /登录/脸谱”方法:

$.ajax({ 
type: "POST", 
url: ".../hauth/login/Facebook", 
cache: false, 
... 

不幸的是,这似乎是一个数量的‘重定向’在HybridAuth使这不起作用。我甚至在Ajax调用中添加了“data:{ajax:true}”,并试图修改HyrbidAuth在$ _POST ['ajax']存在时不重定向。这似乎也没有做到这一点。 (我甚至在重定向()函数结束时删除了“die();”)

我在想我要么在正确的轨道上,要么我需要添加一个新的HybridAuth方法检测并存储已存在的所有或特定连接的数据。

任何想法?

谢谢。

我尝试了几种使用JavaScript SDK登录Provider的方法,并将其与HyrbidAuth集成。没有解决方案非常漂亮,每个解决方案都需要我修改HybridAuth,这很难维护。我最终确定最好的解决方案是遵循HybridAuth中包含的“小部件”示例。

我没有使用小部件,但代码显示了使用Javascript打开和关闭单独较小窗口的方法。该窗口的URL包含服务器调用HybridAuth的'authenticate'方法的信息,该方法将重定向到Provider的登录/批准页面。

效果基本相同:用户在使用提供程序在单独的“窗口”中进行身份验证时停留在同一页面上。