Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将常规登录会话与Facebook登录会话集成?_Php_Facebook_Session_Login - Fatal编程技术网

Php 如何将常规登录会话与Facebook登录会话集成?

Php 如何将常规登录会话与Facebook登录会话集成?,php,facebook,session,login,Php,Facebook,Session,Login,目前,当我通过Facebook登录我的网站时,我仍然无法访问受限页面,因为我还没有设置会话。我的问题是,如何将我的常规会话与Facebook整合,使它们成为同一个会话 我在index.php页面上有这段代码 <div id="fb-root"></div> <script> window.fbAsyncInit = function() { FB.init({ appId : 'APP_ID', // App ID

目前,当我通过Facebook登录我的网站时,我仍然无法访问受限页面,因为我还没有设置会话。我的问题是,如何将我的常规会话与Facebook整合,使它们成为同一个会话

我在index.php页面上有这段代码

 <div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'APP_ID', // App ID
      channelUrl : '//mysite/channel.php', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

  FB.Event.subscribe('auth.authResponseChange', function(response) {
    if (response.status === 'connected') {
      // The response object is returned with a status field that lets the app know the current
      // login status of the person. In this case, we're handling the situation where they 
      // have logged in to the app.    
    } else if (response.status === 'not_authorized') {
      FB.login();
    } else {
      FB.login();
    }
  });

  };

  // Load the SDK asynchronously
  (function(d){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     ref.parentNode.insertBefore(js, ref);
   }(document));
</script>

window.fbAsyninit=函数(){
FB.init({
appId:'APP_ID',//APP ID
channelUrl:'//mysite/channel.php',//通道文件
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});
FB.Event.subscribe('auth.authResponseChange',函数(响应){
如果(response.status===“已连接”){
//响应对象返回一个状态字段,让应用程序知道当前状态
//此人的登录状态。在本例中,我们正在处理他们
//已登录到应用程序。
}else if(response.status===“未授权”){
FB.login();
}否则{
FB.login();
}
});
};
//异步加载SDK
(职能(d){
var js,id='facebook jssdk',ref=d.getElementsByTagName('script')[0];
if(d.getElementById(id)){return;}
js=d.createElement('script');js.id=id;js.async=true;
js.src=“//connect.facebook.net/en_US/all.js”;
ref.parentNode.insertBefore(js,ref);
}(文件);

我的常规会话代码位于另一个页面上,当密码输入和用户名输入与我数据库中的用户名和密码匹配时设置。

如果您仅使用facebook登录,则可能值得您查看,您可以轻松设置并使用
$facebook->getLoginUrl($params)登录
我发现登录“我的常规会话代码在另一个页面上,并且在密码输入和用户名输入与数据库中的用户名和密码匹配时设置”时,在服务器端处理所有内容会容易得多–那么,当您通过Facebook验证登录时,只需做同样的事情–这样做的实际问题在哪里?