2011-12-19 15 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

+0

ユーザがアクティブなセッションを持っていない場合に限り、ユーザはログアウトされます(私の2番目のコードブロック参照)。したがって、まず彼をログアウトさせます(たとえば、彼が「ログアウト」リンクをクリックしたとき)、セッションを破棄して、次にログアウトしました。私が言ったように、OpenIDはセッションとは関係がないので、LightOpenIDにはそのようなメソッドがありません。 – Mewp

関連する問題