シングルログアウト連携

概要

Mobage Connect 上でユーザーがゲームと関わりなくログアウトした際に、Game Server が シングルログアウト を行うための枠組みです。

Mobage Connect に Authorization Request を送るごとに、Authorization Response にて session_state 値が返されます。
この Authorization Response の session_state 値に変化があれば、Mobage Connect 上でユーザーがゲームと関わりなくログアウトしたと判断できます。
 
Mobage JavaScript SDK ではこの session_state パラメータを用いて、Mobage Connect 側のログイン状態が変更されたか確認することができます。
 
このログイン状態の変更の確認と、シングルログアウト連携 を行う機能を開発します。
 

作成するファイル一覧

このチュートリアルで作成するファイルは下記になります。

ファイル名

概要

config.php

各種設定値をまとめます

login_hybrid.php

シングルログアウト連携処理するJavaScriptを呼び出します

main.js

シングルログアウト連携処理を実施します

logout.php

Game Server で保持する Login Session を破棄します

 

チュートリアルをはじめる前に

このチュートリアルは、以下のチュートリアルを終わらせている前提で進めます。
以下のチュートリアルでファイル作成していない場合は、先にそちらを完成させましょう。

開発のステップ

シングルログアウト連携処理を実現するために、大きく以下の2ステップで進めます。

Mobage Connect ログインセッションの変更を監視する

Mobage JavaScript SDK を用いて、session_state パラメータが変更されていないか監視する処理を実装します。
 

セッションで保持しているsession_stateのHTMLへの埋め込み

Game Server でログインセッションに紐づけて保持している session_state を以下のようにHTML中に埋め込みます。

mobage-jssdk-sample-login/hybrid_flow/login_hybrid.php

 

JavaScript で埋め込んだ session_state の読み込み

JavaScript の処理で HTML中に埋め込んだsession_stateパラメータを読み込みます。

mobage-jssdk-sample-login/main.js

 

session_state パラーメータの変更を監視

mobageReady イベントを待ち受けるイベントリスナー中で、mobage.event.subscribe() メソッドの oauth.sessionStateChange イベントを監視して、下記のように session_state の変化を待ち受けます。
このイベントのリスナーに関する result パラメータが changed の場合は、Mobage Connect のログインセッションが変更されているので、Game Server で保持している Login Session を破棄する必要があります。

mobage-jssdk-sample-login/main.js

Game Server のログインセッションを破棄する

Mobage Connect でのログインセッション変更が確認できたら、 Game Server で保持している Login Session を破棄します。
Game Server にて Login Session を破棄したら、他のアカウントでログインする画面を表示するなど、ユーザーを次のアクションに繋げることを意識した設計としましょう。

開発したコード

このチュートリアルで開発したコードは Github から clone できます。

更新履歴

  • 2014/07/08
    • 新規作成

PREVIOUS

Mobage Connect からのログアウト

NEXT

推奨するログアウトフロー