読者です 読者をやめる 読者になる 読者になる

bz0のにっき

ログ置き場

basic認証ログアウト用のブックマークレット

Javascript

試した環境

・htttp通信(セキュリティ的にどうなの?というのはありますが)
basic認証でログインすると、ユーザIDとパスワードのクッキーが設定される

ブックマークレット

ネットで探してみたのですが、クッキーを削除してくれるだけでAuthorizationヘッダが残ってログアウトできない
通常のセッションを消すブックマークレットばかりだったので、メモしておきます。

ブックマークレットの元となるJavascript

chromeのコンソールログでテストしながら書いていきました。

  //クッキー削除
  document.cookie = "ID=; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/;";
  document.cookie = "PW=; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/;";

  //authorizationヘッダをリセットする為にdummyを仕込む
  var url = window.location.href;
  url = url.replace("http://", "http://dummy@");
  window.location.href = url;

http://dummy@」の書き方は、下記記事を参考にさせていただきました。
PHPによる簡単なログイン認証いろいろ - Qiita


ブックマークレット

javascriptをminifyで圧縮
JSCompress: Minify Javascript Online / Online JavaScript Compression

名前空間を汚染しないように、(function(){})();で囲みます。
ブックマークレットを作るときのTips - Qiita

javascript:(function(){document.cookie="ID=; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/;",document.cookie="PW=; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/;";var url=window.location.href;url=url.replace("http://","http://dummy@"),window.location.href=url;})();

IEではセキュリティエラーが出て動きませんでした。
 basic認証をつけたlocation.hrefが原因なのではと思われます。