携帯(DoCoMo)でGAEの認証を使える?
GAEには認証の仕組みも入っています。
認証の必要なページにアクセスしたらログインページにリダイレクトされ、そこで認証情報を入力し認証されるともとのページにリダイレクトされる、という流れになります。
この仕組みは携帯でも使えるんやろうか? というか、このリダイレクトする仕組みを使わないとGAEでは認証情報にアクセスできないため、携帯を使ったサービスを実現しようとすると使えないと困るわけです。アカウント情報を全く独自に管理する必要が出てきてしまうので(それはそれで、普通のWebサイトはそうしているのだから妥当とも言える)。
というわけで、試してみました。以下、コード。GAEのサンプルコードそのまんまです。
import wsgiref.handlers from google.appengine.ext import webapp from google.appengine.api import users class ThePage(webapp.RequestHandler): def get(self): user = users.get_current_user() if user: txt = ("nick is %s" % user.nickname()) else: txt = ("<a href=\"%s\">Login here</a>" % users.create_login_url("/")) self.response.out.write("<html><body>%s</body></html>" % txt) wsgiref.handlers.CGIHandler().run(webapp.WSGIApplication([('/', ThePage)]))
これを(それなりのapp.yamlと組み合わせて)GAEサーバにアップロード。PCでアクセスしてみると、"Login here" -> GAE提供のログインページ -> "nick is matsuza"という想定通りの動作をします。
んで、携帯でアクセスしてみると……。
- "Login here"は当然うまく表示されます。
- ログインページも、PC版のそれがそのまま表示されます。レイアウト崩れてるけど。
- ログインページでサブミットすると、Server Errorの表示……
というわけで、携帯ではGAEのユーザ管理機構は使えないようですな。残念!