Php Foursquare注销按钮
*如果有兴趣,请查看Foursquare对此问题的回答,作为对此帖子的评论* 请帮帮我,我仍在努力解决这个问题:( 我创建了一个删除所有Foursquare相关Cookie的按钮。 通过Firebug检查,当单击时,Cookie未设置 同样的编程也会删除插入数据库中的令牌 当用户首次登录数据库时。签入数据库时,该行为 删除 下面是发生的情况:Php Foursquare注销按钮,php,button,oauth,logout,foursquare,Php,Button,Oauth,Logout,Foursquare,*如果有兴趣,请查看Foursquare对此问题的回答,作为对此帖子的评论* 请帮帮我,我仍在努力解决这个问题:( 我创建了一个删除所有Foursquare相关Cookie的按钮。 通过Firebug检查,当单击时,Cookie未设置 同样的编程也会删除插入数据库中的令牌 当用户首次登录数据库时。签入数据库时,该行为 删除 下面是发生的情况: 在没有cookie的全新浏览器中,用户登录 设置Cookies,并在其中插入带有令牌和用户id的行 数据库 用户注销 取消设置Cookies并从数据库中删
<?php
ob_start();
require_once('includes/EpiCurl.php');
require_once('includes/EpiSequence.php');
require_once('includes/EpiFoursquare.php');
$logout= $_GET['logout'];
if ($logout == 'true'){ /*I'm deleting all the cookies foursquare related just in case*/
$pastdate = mktime(0,0,0,1,1,1970);
setcookie ("XSESSIONID", "", time() - 18600);
setcookie ("access_token", "", time() - 18600);
setcookie ("ext_id", "", time() - 18600);
setcookie ("LOCATION", "", time() - 18600);
setcookie("access_token", "", $pastdate);
setcookie("XSESSIONID", "", $pastdate);
setcookie("ext_id", "", $pastdate);
setcookie("LOCATION", "", $pastdate);
setcookie("_chartbeat2", "", $pastdate);
setcookie("__utmb", "", $pastdate);
setcookie("__utmc", "", $pastdate);
setcookie("__utma", "", $pastdate);
setcookie("__utmz", "", $pastdate);
$_SESSION['XSESSIONID']=false;
unset($_SESSION['XSESSIONID']);
}
$clientId = "yyyyyyyyy";
$clientSecret = "xxxxx";
$redirectUrl = 'mypage.php';
$fsObjUnAuth = new EpiFoursquare($clientId, $clientSecret);
$thecode = $_GET['code'];
if(!isset($thecode) && !isset($_COOKIE['access_token'])) { //not in yet
$authorizeUrl = $fsObjUnAuth->getAuthorizeUrl($redirectUrl);
echo"<a href='".$authorizeUrl."'>Let's log in</a>";
}else{ /*we're in*/
if(!isset($_COOKIE['access_token'])) {
$token = $fsObjUnAuth->getAccessToken($thecode, $redirectUrl);
setcookie('access_token', $token->access_token);
$_COOKIE['access_token'] = $token->access_token;
}
$fsObjUnAuth->setAccessToken($_COOKIE['access_token']);
echo "we're in";
echo"<br><a href='mypage.php?logout=true'>Logout</a>";
}
?>
在取消设置cookie之前是否尝试更改其过期日期的值?似乎取消设置不会破坏cookie。您不能真正“注销”就其本身而言。根据Foursquare docs,代币将永远不会过期。您在这方面做的一切都是正确的。您需要点击https://foursquare.com/oauth2/authorize
而不是https://foursquare.com/oauth2/authenticate
。点击/authorize
将强制用户重新验证其身份,(重新登录),并重新授权您的应用程序,为您的应用程序提供一个新的访问令牌以在本地存储。我正在执行setcookie(“访问令牌”,时间()-3600);以取消设置。这不对吗?(我正在使用其余的Foursquare Cookie执行此操作)不,这是正确的方法。我可能错了,但可能您必须查看更新cookie的位置并可能需要刷新?如果这不影响它,请尝试使用print\r($\u cookie['access\u token')查看cookie仍然具有什么值;我正在编辑帖子,以便向您展示我正在使用的代码。如果可以,请尝试。您将看到单击“注销”后cookie是如何被删除的,但第6步发生了,并且无法进行新登录(在登录之前再次设置了cookie):(目前我们还不准备允许第三方应用程序将用户从foursquare.com注销。如果您认为从您的应用程序注销的用户应该从foursquare.com注销,我们建议发出显著的行动呼吁(例如,“注销foursquare!”)在您的注销页面上。~ak--我对此有问题,我正在使用Foursquare API,如果我登录myapp,然后我想搜索Foursquare信息,但如果在web浏览器中,其他用户登录Foursquare,我的搜索结果是来自活动帐户的信息(不是我的信息),我如何控制?