Q:SmartBrainを利用して、シングルサインオン環境を実現する方法について教えてください。
A:以下の方法を参考にして下さい。
アカウントの存在確認
http://***********/***/api/user.php?action=isValidAccount&logon=*****&password=******
有効なユーザが存在すれば、そのユーザのuser_id(int)が返されます。
有効なアカウントが存在していれば、以下のURLにlocationしてください。
location(‘http://***************/***/index.php?action=logon&logon=*****&password=******&referer=*****’);
※refererはSmartBrainからログアウトした際の、戻り先のURLです。
指定しなかった場合は、SmartBrainの通常ログイン画面に戻ります。
refererの値はurlエンコードするようご注意下さい。
なければ、適宜、エラーメッセージを表示してください。
▼以下、PHPでの実装例
$url = ‘http://sb.e100ten.com/api/user.php?action=isValidAccount&’.gl(‘logon,password’);
$valid = file_get_contents($url);
$_GET[‘referer’] = ‘http://veritas.bz/students/login/index.php’;
if($valid){
location(‘http://sb.e100ten.com/index.php?action=logon&’.gl(‘logon,password,referer’));
}else{
set_error(‘login’, ‘ユーザ名もしくはパスワードが正しくありません。’);
include(‘inc_index.php’);
}
※シングルサインオン元とSmartBrainの双方で、どのようにユーザ情報、パスワードを同期しておくかについては、別途検討が必要です。