当前位置: 首页 > 知识库问答 >
问题:

Kohana的Facebook身份验证错误

端木野
2023-03-14

href="https://www.facebook.com/dialog/oauth?client_id=341106515944015"&redirect_uri=http://verana.ge/fbauth/&scope=user_about_me&state=veranalast">

在controller文件夹中,我有一个名为fbauth.php的控制器,其中有以下代码

 public function action_index()
{

   $app_id = "341106515944015";
   $app_secret = "79f547b92f34f886cc8d51ca1a5d33e0";
   $my_url = "http://verana.ge/";

  // session_start(); <!-- commented because in Kohana the Session is already started -->

   $code = $_REQUEST["code"];

   if(empty($code)) {
   $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
         $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" 
     . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
     . $_SESSION['state'];
   echo("<script> top.location.href='" . $dialog_url . "'</script>");
    }

if($_REQUEST["state"] = 'veranalast') {
   $token_url = "https://graph.facebook.com/oauth/access_token?"
   . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
   . "&client_secret=" . $app_secret . "&code=" . $code;


   $response = file_get_contents($token_url);

   $params = null;

   parse_str($response, $params);


   $graph_url = "https://graph.facebook.com/me?access_token=" 
             . $params['access_token'];

   $user = json_decode(file_get_contents($graph_url));
           echo("Hello " . $user->name);
}
else {
   echo("The state does not match. You may be a victim of CSRF.");
}


}   

但当我点击facebook链接并尝试连接时,我得到了如下错误

  ErrorException [ Warning ]: file_get_contents(https://graph.facebook.com/oauth/access_token?client_id=341106515944015&redirect_uri=http%3A%2F%2Fverana.ge%2F&client_secret=79f547b92f34f886cc8d51ca1a5d33e0&code=AQB9jQDcWXNVhPoxhOH-GyJ_0P0UQD9y5wfFy8cfP48TxvlX0VnycEWSpTOC0NWXTyCfssTUHCwFjmZdySy74zor_AQGvtzE5YCkB3asMBhWiiAJhesbFa_GrQIzT7UWiNrbl73CmVz5hell-shwrnavUviuDvpMqg6jCbMBHa6nb39xvidf-P5KOe4wlyR9TG8) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad APPPATH/classes/controller/fbauth.php [ 32 ]
27             $token_url = "https://graph.facebook.com/oauth/access_token?"
28             . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
29             . "&client_secret=" . $app_secret . "&code=" . $code;
30 
31             
32             $response = file_get_contents($token_url);
33             
34             $params = null;
35                         
36             parse_str($response, $params);
37 

另外,为了进行双重检查,我在Kohana之外创建了这个函数,它没有问题。

我所做的是,在Kohana的外部,我创建了一个名为index.php的文件,在其中我输入了html和Facebook身份验证的标记,然后我创建了一个名为testauth.php的文件,在其中我输入了与fbauth.php相同的代码,正如我所说的,它可以正常工作。

也许有什么简单的方法能把它弄清楚,但我不知道。请告诉我如何修理它。

有什么IDE吗?

暂时还没有答案

 类似资料:
  • 在本章中,我们将使用Firebase Facebook身份验证对用户进行身份验证。 第1步 - 启用Facebook身份验证 我们需要打开Firebase信息中心,然后在侧边菜单中点击Auth 。 接下来,我们需要在标签栏中选择SIGN-IN-METHOD 。 我们将启用Facebook身份验证并保持打开状态,因为我们需要在完成第2步时添加App ID和App Secret 。 第2步 - 创建F

  • 我正在尝试使用Facebook凭据实现网站登录。当我在Facebook小部件上按“取消”或“确定”时,我会看到不同的反应。当我按Cancel时,我看到以下内容 这是可预测的。但是当我按OK时,我看到另一个错误。 我在本地运行的网站Ubuntu 14.04 apache Web服务器与80端口。我怀疑错误的Facebook应用程序设置,但不知道调试什么。 此外,我可以提到推特登录也在相同的设置下工作

  • 我想在CDH-5.3.2版本中使用水槽从twitter获取数据。我已经配置了flume.conf、hbase接收器和twitter源代码。 但是,当我启动代理时,我收到以下错误: flume.conf和hbase接收器代码与此博客相同:http://ahikmat.blogspot.com/2014/08/streaming-twitter-tweets-to-hbase-with.html 而且

  • cluster=hfactory.getOrCreateCluster(“test cluster”,“localhost:9160”,凭据); 但不幸的是,它给了我一个错误: HFactory类型中的方法getOrCreateCluster(String,CassandraHostConfigurator,Map)不适用于参数(String,String,Map)

  • 身份验证 PDF版下载 企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案: 企业应用中的URL链接直接填写企业自己的页面地址; 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成; 如果没有获取到cookie,重定向到OAuth验证链接,获取员工

  • 我正在进行JDBC身份验证,当我尝试访问API时,它会在不询问用户名和密码的情况下给出“禁止”。 这是我的安全配置。 当我给出正确的身份验证时,我无法登录,错误是, 模型实体为: 数据库中的条目是 用户表 user_id名密码 1 jack 角色表 role_id角色 1 ADMIN 2 USER 3 LEAD user_role表 user_idrole_id 1 1 1 2 1 3