kokodayo.net
FSWikiまとめ
FreeStyleWiki
編集FAQ

Safari

SafariログインのIDとパスワードを記憶するパッチを使うと、通常のログインができない対応(未)

ここの固有の症状かもしれません。
2010年1月7日時点の最新版では自然解消済。



  • クッキーの名前に「save_login_id」と記録されてしまう。

/plugin/admin/Login.pmの該当部分

		my $id   = $cgi->param("id");
		my $pass = $cgi->param("pass");
#IDかパスワードが在って
		if($id ne "" && $pass ne ""){
			my $cook_path = &Util::cookie_path($wiki);
			my $cookie;
			my $save_login = $cgi->param("save_login");
#ログイン記憶なら←ログイン記憶の場合は正常
			if($save_login eq "1"){
#ログイン記憶のクッキーを設定←よってここも正常
				$cookie = $cgi->cookie(-name=>'save_login_id',-value=>$id,-expires=>'+1M',-path=>$cook_path);
				print "Set-Cookie: ",$cookie->as_string,"\n";
				$cookie = $cgi->cookie(-name=>'save_login_pass',-value=>$pass,-expires=>'+1M',-path=>$cook_path);
				print "Set-Cookie: ",$cookie->as_string,"\n";
			} else {
#ログイン記憶のクッキーを削除←save_login_idの問題の箇所?
				$cookie = $cgi->cookie(-name=>'save_login_id',-value=>'',-expires=>-1,-path=>$cook_path);
				print "Set-Cookie: ",$cookie->as_string,"\n";
				$cookie = $cgi->cookie(-name=>'save_login_pass',-value=>'',-expires=>-1,-path=>$cook_path);
				print "Set-Cookie: ",$cookie->as_string,"\n";
			}
#ログインできたら
			my $login = $wiki->login_check($id,&Util::md5($pass,$id));
			if(defined($login)){	
#ログインセッションを開始
				my $session = $cgi->get_session($wiki,1);
				$session->param("wiki_id"  ,$id);
				$session->param("wiki_type",$login->{type});
				$session->param("wiki_path",$login->{path});
				$session->flush();
#フロントページに移る←ここの処理はされているので正常なログオン状態ではないがログインしていることにはなっているようだ
$wiki->redirectURL($wiki->config("FRONTPAGE"));
#管理画面に移る#$wiki->redirectURL($wiki->config('script_name')."?action=LOGIN");
			} else {
				$result = $wiki->error("IDもしくはパスワードが違います。");
			}
		} else {
#記憶ログイン情報を得る
			$id = $cgi->cookie(-name=>'save_login_id');
			$pass = $cgi->cookie(-name=>'save_login_pass');
#ログイン画面を表示する
			$result = $self->default($wiki, $id, $pass);
		}