OpenPNE 3.5.3 での「かんたんログイン」の端末固有IDからの(部分的)脱却で困った点

(個人ブログなので「携帯電話個体識別番号」ではなく「端末固有 ID」と呼ぶよ)

ということで、

OpenPNE 3.5.3 でおこなった「かんたんログイン」の変更について
http://www.openpne.jp/archives/5070/

の件です。

ここで説明されているのは(技術者には既知である事項の説明を除くと)、要するに以下のようなことです。

  • Cookie 内のランダムな ID を見る認証手段を用意したよ
  • Cookie が使える端末では端末固有 ID ではなく Cookie 内の ID を見て「かんたんログイン」するようにしたよ
  • 認証手段を「A: Cookie 内 ID のみ」「C: 端末固有 ID のみ」「B: A と B を併用」できるようにしたよ(see: http://twitter.com/co3k/status/15973375832
  • B の方法を選んだ場合は、ユーザが Cookie 内 ID の利用を開始していないか、そもそも Cookie を利用できる端末でない場合は端末固有 ID で認証するけど、ユーザが Cookie 内 ID を利用しているのに Cookie にその値がなく端末固有 ID での認証を使用としてきたら弾くよ

……ということで、まあ、特に難しいこともなく、これだけなんです。

実装内容については、実際の差分を見ていただければわかるのかな、と思います(何か疑問点などあればお答えします)。

登録時の Cookie 内 ID の付与
http://github.com/openpne/OpenPNE3/commit/b1bd42e951adb4cb8b66865257fc5949f3fbd267
認証部分 (opAuthMobileUIDPlugin)
http://github.com/ebihara/opAuthMobileUIDPlugin/commit/83896d9e6318208cb51b175e0ed1f9e1f5a18089
Cookie 内 ID の更新
http://github.com/openpne/OpenPNE3/commit/bd6c562674e15b645165bd90b334e6fbd1d504e5

ただ、この機能を実現するにあたってそれなりに苦労した点があるので、ここではそのことについて書こうと思います。

メンバーと紐づけた端末固有 ID 利用の完全な脱却について

結局これは今回は断念したんですが…… OpenPNE で使っている「ブラックリスト」機能は、ログインしようとしている端末の固有 ID が、 DB 内の禁止するべき端末固有 ID のリストに含まれている場合はログインを弾くというものなので、 OpenPNE 側としては他の情報と一切紐付かない、ただの端末固有 ID のリストがあればそれでよいわけです。

問題なのが管理画面から特定のユーザの端末固有 ID をブロックしたい場合で、この機能をメンバーと端末固有 ID とを紐づけずにどうやって実現するかどうか、とかまで考えたかったのですが、残念ながらそこまでの余裕がなかったので、次の 3.8 に持ち越しの課題にしようと思っています。

一応の案としては「ブラックリストに入れたいメンバー ID リスト」みたいなものをもっておいて、そこにリストアップされたメンバーがログインしようとしたときに、そのメンバーの端末固有 ID をブラックリストに入れる、という感じのものがあるといえばありますが、どうなんだろうなあ。

とにかく「ブラックリスト」機能がメンバーと端末固有 ID を紐づけずに実現できるのであれば、あとは i モードブラウザ 1.0 が絶滅するのを待てばよいと……。その日が訪れるのが今から楽しみですね!

comments powered by Disqus

Recently entries