我注意到,当我连续两次刷新页面或双击链接时,用户会自动注销.我正在使用cakephp 1.2和Auth组件.我对CakePHP没有很多经验,任何想法可能会导致什么?
在我的php应用程序中,我使用$ _SESSION来跟踪用户是否已登录.如果用户在我的网站http://mysite.com上留下任何页面并转到http://someotherwebsite.com,我想要自动注销,如果他们返回http://mysite.com上的任何页面,他们需要再次登录.
是否有捷径可寻?
当用户单击注销按钮时,我会连接到一个只执行此操作的脚本
session_destroy();
session_start();
Run Code Online (Sandbox Code Playgroud)
I thought this would be enough to reset all $_SESSION variables such as $_SESSION['logged'] and $_SESSION['username'] but when I load the page again, it automatically logs me in as if the session is still active.
我有一个用于我的Web应用程序的注销文件.我想在注销后创建一个会话,以便我可以回显注销成功消息.我的注销代码有效但我在销毁前一个会话后无法创建新会话.
执行此操作的最佳方法是什么,请参阅代码:
//LOGOUT.PHP
session_start();
//// unset all $_SESSION variables
session_regenerate_id();
session_unset();
session_destroy();
$_SESSION['logoutsuccess'] = 'You have successfully logged out.';
header("Location: /login/");
exit;
//LOGIN.PHP (ECHO SUCCESS MESSAGE)
if(isset($_SESSION['logoutsuccess']))
{
echo '<div class="success">'.$_SESSION['logoutsuccess'].'</div>';
unset($_SESSION['logoutsuccess']);
}
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我想避免在url中传递变量.
我能够使用此Twitter登录和发布,但我不知道如何注销.
我只是假装我已经通过添加注销了
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
private boolean mCanTweet = false;
Run Code Online (Sandbox Code Playgroud)
我尝试使用此教程中的URL注销,但它无法正常工作.
public static final String TWITTER_LOGOUT_URL = "https://api.twitter.com/logout";
Run Code Online (Sandbox Code Playgroud)
有谁知道如何使用Twitter4j进行"实际"注销?
这是我的项目
http://dl.dropbox.com/u/12439052/stackoverflow/TwitterCon2.zip
假设我们有一位用户正在使用三种不同的服务Single sign-on.单击"注销"时,可以识别并终止具有当前Sp的会话.
在此,有责任IdP将用户从其他两个服务中注销.我的问题是如何获得和终止与其余两项服务的会议?
场景:考虑一个与用户名和密码匹配的登录系统(Node.js + Express + Socket.IO),并允许用户访问经过身份验证的页面.登录系统将会话ID存储为客户端的cookie,并在服务器上对每个经过身份验证的页面请求进行验证,并相应地允许/禁止.
问题:现在,假设同一用户从不同的机器或浏览器登录,我希望以前的用户推送到会话过期页面并显示信息,例如:"您可能从不同的浏览器或机器登录.请不要分享密码.欲了解更多信息,请访问:SomeLinkHere"
注意:我只是不想让用户登录会话无效,当用户从其他浏览器或机器登录时,我想将用户推送到会话过期页面,即使用户没有点击任何链接或请求任何进一步的身份验证页面.
这背后的主要目的是:避免这样的情况,例如:"如果用户正在观看一些敏感数据,例如实时报告(即socket.io上的仪表板),并将密码分享给其他人."
问题:由于socket.io已经用于报告实时数据,如何在不重载现有socket.io连接的情况下实现这一点?
我有一个应用程序,我已经实现了登录,注销和一些自定义操作.某些操作只有在用户登录时才能执行,但如果用户在登录后删除了应用程序并且没有注销,那么我就无法让其他用户知道他不再是用户而且全部只有在此用户再次安装应用程序并登录后,才能执行与登录关联的操作.
是否有任何方法在应用删除之前被调用?这样我就可以在该函数中触发logout方法.有什么方法可以在他从设备中删除应用程序时使用委托方法或通知来注销用户?
我正在使用最新版本的PHP SDK for Facebook(3.2.1)
我想知道,当使用base_facebook.phpsdk中提供的功能注销时,是否有办法阻止它实际退出facebook,但仍然删除网站应用程序的会话?
以下是退出功能 base_facebook.php
/**
* Get a Logout URL suitable for use with redirects.
*
* The parameters:
* - next: the url to go to after a successful logout
*
* @param array $params Provide custom parameters
* @return string The URL for the logout flow
*/
public function getLogoutUrl($params=array()) {
session_destroy();
return $this->getUrl(
'www',
'logout.php',
array_merge(array(
'next' => $this->getCurrentUrl(),
'access_token' => $this->getUserAccessToken(),
), $params)
);
}
Run Code Online (Sandbox Code Playgroud)
然后我的注销网址是:$logoutUrl = $facebook->getLogoutUrl();然后显然使用锚标记注销:<a …
我试图从模板调用signout url然后重定向到主页.
profile.html:
<li><a data-hover="Logout" href="{% url 'signout' %}">Logout</a></li>
Run Code Online (Sandbox Code Playgroud)
urls.py:
urlpatterns = [
url(r'^$', views.login, name='login'),
url(r'^ajax/validate_username/$', views.validate_username, name='validate_username'),
url(r'^signout$', views.signout, name='signout'),
]
Run Code Online (Sandbox Code Playgroud)
views.py:
def signout(request):
if request.user.is_authenticated():
logout(request)
return HttpResponsePermanentRedirect('/')
else:
return HttpResponsePermanentRedirect('/')
Run Code Online (Sandbox Code Playgroud)
有时注销功能不起作用,同时单击注销菜单(功能注销正在调用).