openIDで認証システムをつくることになったんで少し調べてみた。
ある程度理解できたのでメモにしてみる。
引用もなしにopenIDを自分なりに説明すると
URLがログインIDになる。
IDとパスワードの認証はOpenIDを発行するプロバイダがやってくれる。
なので、わざわざログインが必要なサイトに会員登録する手間が省け、ID一つでいろんなサイトを利用できるというわけです。
なるほど、URLは一人一つもてるし、重複がない。
このプロバイダとは現在だと
などがあります。
ユーザーに唯一無二のID(URL)を提供できる媒体です。
自分で立ち上げたブログなどもID(URL)として扱うことができるけど、それもこれらのプロバイダーを介して行われます。
開発者の立場としてopenIDを利用するメリットとしては、
- 開発にかけるコストが低くなる。
- 個人情報を保持しなくてよい。
逆にデメリットとしては、
- メールアドレスが取得できない。
- ユーザーを特定できない。
で、openIDもバージョンがあって1.1と2.0があります。
メインストリームは1.1
ただ今年になってヤフーが2.0に対応したりで、以前のRSS状態になりつつあります。
2.0はURIでなくXMLでの対応が可能らしい。
でヤフーからパクッた用語集。
OpenID Provider(OP)
OpenIDを発行するプロバイダ(例:Yahoo! JAPAN)
Relying Party(RP)
OpenIDによる認証を受け入れるウェブサイト(Haruとかコミュニティ)
End User
OpenIDの利用者(ログインする人)
疑問
URLはメールアドレスでは無理なのか?そんな規格があってもいいんじゃない?
ライブドアとかJugemの認証APIってopenIDではないの?
使いそうで使ってなかったjqueyのeach関数。
下記のようにDOMをループしてリンク先を全て変更したい時等に使います。
<ul class="clearfix">
<li><a href="link1.html">リンク1</a></li>
<li><a href="link2.html">リンク2</a></li>
<li><a href="link3.html">リンク3</a></li>
<li><a href="link4.html">リンク4</a></li>
<li><a href="link5.html">リンク5</a></li>
</ul>
$(document).ready(function(){
j$("ul li a").each(function(i){
var url = j$(this).attr('href');
url = url + '\?ref=blog';
j$(this).attr('href', url);
});
});
するとページがロードされるとこんな感じに代わります。
<ul class="clearfix">
<li><a href="link1.html?ref=blog">リンク1</a></li>
<li><a href="link2.html?ref=blog">リンク2</a></li>
<li><a href="link3.html?ref=blog">リンク3</a></li>
<li><a href="link4.html?ref=blog">リンク4</a></li>
<li><a href="link5.html?ref=blog">リンク5</a></li>
</ul>
実際jsでリンクを変更って余り使わないだろうけど、classを変更したい時はテキストを変更したい時に使えます。
jsでインターフェイスの幅が広がったと思うけど、本当のユーザビリティーってなんだろうと思う。
「直感」で分かるインターフェイスはもちろん重要。
しかし、
- ユーザーは「次へ」をクリックするとページ遷移することに慣れてしてまってる。
- 開発者はユーザービリティを考慮してページ遷移させずにajaxで次ページを表示する。
で、ブラウザの戻るをクリックするとユーザーが望んでるページに戻らない。
開発者や制作会社なんかは後者を意識しがちだけど、ユーザーの慣れとか体験っていうのを無視してしまうのは、本来のユーザビリティっての無視してる気がする。
後進的と言われようと、そこは重要なところ。
別にドラマ24の話ではありません。
最近引越しをし、フレッツ光(西日本)を導入しました。
以前使ってたサーバーをそのまま設置したところどうも外部から接続できない。
で、調べたところCTUに問題があったみたいです。
CTUは光プレミアムの接続に使うルータです。
そうCTUはルータなんです。そうとは知らずに完全にTAみたいものと思い込んで、CTUがあるのにバッファローのルーターも設置し、外部から接続できず手をこまねいてました。
CTUのポートを空ける、linuxのIPを変更する。
この2点の変更が必要になります。
CTUは、色んなサイトを参考に完了。
サーバー(linux/apache)は下記のような感じでIPを変更。
CTUはデフォルトでは192.168.24.*なのに対してバッファローは192.168.11.*です。
以前は192.168.11.10だったものを今回はサーバーのアドレスを192.168.24.40にします。
ネットワーク関連の変更は、GUIで操作できる/usr/sbin/netconfigが便利です。
私の環境では下記の設定です。
IP アドレス:192.168.24.40
ネットマスク:255.255.255.0
デフォルトゲートウェイ (IP):192.168.24.1
1番目のネームサーバ: 192.168.24.1
networkを再起動
/etc/rc.d/init.d/network restart