携帯(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のユーザ管理機構は使えないようですな。残念!