GAEでの認証方法の検討

前の記事で書いた ChanTo.meですが、ユーザの認証方法については、色々試行錯誤しました。

まず最初に考えたのが、独自の認証を行うか、GoogleOpenIDなどの認証を使うかどちらにするかです。

しかし、これは結構あっさりと独自認証はしないと決めました。

GAEのDjangoでは、一般的な認証を利用するのが面倒だとかそういう問題ではなく、GAEで独自ドメインを使った時に、httpsが使えない(ですよねえ?)のが、実は理由です。自分で別に認証サーバを立てて、独自OpenIDもどきを作るなどの方法も考えたのですが、あまり意味もなさそうなのでやめました。
GAEのappspot.comのドメインを使えばできるみたいなのですけどね。


独自認証は行わないことにしたので、まず当初はGoogleアカウントを使うという素直な方法で開発を始めました。

しかし、本当にGoogleアカウントだけで良いのかと疑問を感じてOpenIDと平行して使う事を検討しました。

そこで参考にしたのが、無題メモランダムさん「Google App Engine上のアプリでOpen IDを利用する」という記事でした。

さて、ここで問題が、このブログで紹介されているOpenIDのライブラリは、Django用のヘルパーを使っている点です。
そこで、開発途中だったのですが、ヘルパーを使うように修正しました。
ひとまず、googleアカウントとOpenIDの併用ができることは確認できました。

しかし、ここで問題が発生。ヘルパーを使って、セッションを利用しようとすると、ヘルパーのセッションとOpenIDのライブラリのセッションとで、何か不整合があるようで、うまく使えない事がわかりました。
とりあえず名称を変更するとかで対応を進めたのですが、結局OpenIDの利用はやめました。理由は、

  • OpenIDは、OpenIDのプロバイダによりURLがバラバラで、ユーザにとって使いづらい。
  • 私の方もサポートしきれない。
  • 将来、APIを提供する時にGoogle+各種のOpenIDとを利用できるようにしてAPIを作るのは難しい。
  • OpenIDでは、メールアドレスがもらえない場合がある。

などがありまして、結局、まずはGoogleアカウントだけで開発する事にしました。

Googleアカウントをお持ちの方、持ってないけど登録しても良いと思っている方、ぜひ、生活チェックサービスのChanTo.meをご利用ください。