将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的登录/批准页面。
效果基本相同:用户在使用提供程序在单独的“窗口”中进行身份验证时停留在同一页面上。