HybridAuth / PHP Facebook SDK身份验证失败(getUser返回0)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了HybridAuth / PHP Facebook SDK身份验证失败(getUser返回0),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2322字,纯文字阅读大概需要4分钟。
内容图文
![HybridAuth / PHP Facebook SDK身份验证失败(getUser返回0)](/upload/InfoBanner/zyjiaocheng/696/89c16ec4c597414b9cd396fa2a83a61c.jpg)
我正在尝试配置HybridAuth,目前处于初期阶段.现在,我要做的就是连接并确保HA将重定向到facebook并提示安装应用程序,然后在用户返回时对其进行身份验证.
我正在通过以下方式手动致电:
http://mydomain.com/auth.php?provider=Facebook
auth.php看起来像这样:
session_start();
require_once($_SERVER['DOCUMENT_ROOT'] . "/func/db_connect.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/api/auth/Hybrid/Auth.php"); // HybridAuth Module
$hybridauth_config = include($_SERVER['DOCUMENT_ROOT'] . '/api/auth/config.php');
if ($_GET['provider'] == '' || !in_array($_GET['provider'], array_keys($hybridauth_config['providers']))) {
echo 'Invalid Provider';
} else {
try {
$hybridauth = new Hybrid_Auth($hybridauth_config);
// try to authenticate with this provider
$adapter = $hybridauth->authenticate($_GET['provider']);
// grab user profile
if ($hybridauth->isConnectedWith($f_provider)) {
// yep, we're connected. Add this provider's info to the user_auth table
echo 'connection successful';
}
} catch (Exception $e) {
echo $e->getMessage();
}
}
它的工作方式是转发到Facebook,并提示您使用适当的权限安装正确的应用程序.这告诉我我的HA配置工作正常.我成功安装了该应用程序,然后将其重定向回页面,在该页面上我收到以下消息:
Authentification failed! Facebook returned an invalide user id.
是什么赋予了?我的应用程序在FB控制面板中也显示0个添加和0个API调用(尽管此数据看起来可能会延迟几天).我是否在等待FB以某种方式启用该应用程序?难道我做错了什么?
UPDATE
HybridAuth使用Facebook SDK,因此我试图从整个方程式中消除HA.运行以下基本示例:
session_start();
require($_SERVER['DOCUMENT_ROOT'] . "/path/to/fbsdk/facebook.php");
$facebook = new Facebook(array(
'appId' => 'myappid',
'secret' => 'myappsecret',
'fileUpload' => true
));
$user = $facebook->getUser();
var_dump($user);
我登录到Facebook并添加了应用程序,但是无论我做什么,用户ID都会返回0.我也尝试过使用测试用户-无济于事.我在这里可能会缺少一些服务器配置问题吗?
解决方法:
我将代码移至其他应用程序/服务器,然后移至其他服务器上的同一应用程序,一切正常.因此,我开始将其视为服务器配置问题.事实证明,Facebook不喜欢我的开发服务器上的自签名证书.
我能够通过更改PHP SDK中的base_facebook.php类并添加curlopt来忽略SSL验证步骤来解决此问题.见下文:
public static $CURL_OPTS = array(
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
CURLOPT_USERAGENT => 'facebook-php-3.1',
CURLOPT_SSL_VERIFYPEER => false
);
内容总结
以上是互联网集市为您收集整理的HybridAuth / PHP Facebook SDK身份验证失败(getUser返回0)全部内容,希望文章能够帮你解决HybridAuth / PHP Facebook SDK身份验证失败(getUser返回0)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。