2011-12-19 73 views
1

我尝试使用LightOpenId为我的网站登录/注销用户。这工作正常,但我的问题是“我如何跟踪用户登录/注销状态,并采取相应的行动”。使用LightOpenID登录/注销用户状态

我希望用户只有在登录后才能访问我的网站功能,并且在用户注销时重定向到登录页面。

在此先感谢。

回答

6

你的问题实际上与OpenID无关。

OpenID是一种认证协议,这意味着它只会检查用户是否真的是他自称的人 - 就像要求密码检查那样。它与您的用户登录或注销没有任何关系。

为了跟踪您的用户会话,您需要使用会话。例如,在验证:

<?php 
if($openid->validate()) { 
    // User has logged in 
    $_SESSION['identity'] = $openid->identity; 
} 
?> 

然后,当你要检查你的用户是否登录。(和他是谁):

<?php 
if(isset($_SESSION['identity'])) { 
    echo 'User is logged in as ' . $_SESSION['identity']; 
} else { 
    echo 'User isn\'t logged in'; 
} 
?> 

而完成的缘故注销时:

<?php 
unset($_SESSION['identity']); 
session_destroy(); 
?> 

如果你不知道如何使用会话,你可以找到更多的信息in the manual

+1

嘿谢谢你的回复。但我的问题是如何检查用户是否注销了我的系统,以便我可以取消设置并为他销毁会话。有什么方法可以检查吗? – user392406 2011-12-20 05:29:58

+0

当且仅当他没有活动会话时,用户才会注销(请参阅我的第二个代码块)。因此,您首先将他注销(例如,当他点击“注销”链接时),销毁会话,然后......他只是注销。正如我所说的,OpenID与会话没有任何关系,所以LightOpenID没有这种方法。 – Mewp 2011-12-20 08:33:01