GAEでの認証方法の検討
前の記事で書いた ChanTo.meですが、ユーザの認証方法については、色々試行錯誤しました。
まず最初に考えたのが、独自の認証を行うか、GoogleやOpenIDなどの認証を使うかどちらにするかです。
しかし、これは結構あっさりと独自認証はしないと決めました。
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をご利用ください。