Updated : January 2011
DekiWiki authtoken
DekiWikiではログインの状況をCookieで管理している。
Login画面からログインした時に、「authtoken」として有効期間7日でcookieに設定している。
authtoken(cookie)の設定方法
http://(DekiWikiホスト)/@api/deki/users/authenticateに対して、Basic認証のAuthorizationヘッダを付加してアクセスする。
Authorizationヘッダのユーザ名、パスワードで認証がされると、cookieにauthtokenが設定されて応答が返ってくる。
応答メッセージからcookie情報を抜き出しブラウザへのcookieを設定する。
Login処理例(PHP: PEAR、HTTP_requestパッケージ使用)
require_once "HTTP/Request.php";
function login($userid, $passwd){
$url = http://(DekiWikiホスト)/@api/deki/users/authenticate;
$http = new HTTP_Request($url);
$http->setBasicAuth($userid, $passwd);
$response = $http->sendRequest();
if (!PEAR::isError($response)) {
$code = $http->getResponseCode();
if ($code == 200){
$cookie_deki = $http->getResponseCookies();
setcookie("authtoken",str_replace("\"","",$cookie_deki[0]['value']),time()+3600, '/');
return 0;
}
else{
return $code;
}
}
else{
return 1;
}
}
authtokenの削除
Logout時などでログイン状態を破棄するには、cookieの削除を行う。
Expire Dateとして過去時刻を設定することでよい。
PHPコード例
setcookie('authtoken', '', time()-3600, '/');