-1
소셜 로그 작업 중입니다. 나는 login with facebook을 시도했다. 일단 사용자가 인증되면 자신의 가치를 얻을 수 있으며 사이트에서 세션을 만들 수 있도록 쿠키에 ID를 설정해야합니다.쿠키를 PHP에서 설정할 수 없습니다.
다음내 코드는,
<?php
/*
* login_with_facebook.php
*
* @(#) $Id: login_with_facebook.php,v 1.2 2012/10/05 09:22:40 mlemos Exp $
*
*/
require('http.php');
require('oauth_client.php');
$client = new oauth_client_class;
$client->server = 'Facebook';
$client->redirect_uri = 'http://'.$_SERVER['HTTP_HOST'].
dirname(strtok($_SERVER['REQUEST_URI'],'?')).'/login_with_facebook.php';
$client->client_id = ''; $application_line = __LINE__;
$client->client_secret = '';
if(strlen($client->client_id) == 0
|| strlen($client->client_secret) == 0)
die('Please go to Facebook Apps page https://developers.facebook.com/apps , '.
'create an application, and in the line '.$application_line.
' set the client_id to App ID/API Key and client_secret with App Secret');
/* API permissions
*/
$client->scope = 'email';
if(($success = $client->Initialize()))
{
if(($success = $client->Process()))
{
if(strlen($client->access_token))
{
$success = $client->CallAPI(
'https://graph.facebook.com/me',
'GET', array(), array('FailOnAccessError'=>true), $user);
}
}
$success = $client->Finalize($success);
}
if($client->exit)
exit;
if($success)
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Facebook OAuth client results</title>
</head>
<body>
<?php
echo "This is id i got from facebook ".$user->id." I am unable to set this value in cookie.";
mysql_connect('localhost', 'user_id', 'pwd');
mysql_select_db("DB Name");
$sql = "INSERT INTO oauth SET auth_id = ".$user->id.",
name = '".$user->name."',
email = '".$user->email."',
link = '".$user->link."'";
mysql_query($sql);
if(isset($_COOKIE['auth_id']))
unset($_COOKIE['auth_id']);
setcookie("auth_id", $user->id, time()+60*60*24, "/");
?>
<script>
//window.close();
</script>
</body>
</html>
<?php
}
else
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>OAuth client error</title>
</head>
<body>
<h1>OAuth client error</h1>
<pre>Error: <?php echo HtmlSpecialChars($client->error); ?></pre>
</body>
</html>
<?php
}
?>
그냥 내 도메인을 업데이트 한 후 쿠키를 설정. 그러나 이것은 나를 위해 작동하지 않습니다.
사용자 ID가 설정되어 있는지 확인하고 있습니까? –
쿠키는 다음 페이지를 새로 고친 후에 만 사용할 수 있습니다. – egig
쿠키 설정 여부는 어떻게 테스트합니까? – Luceos