我们正在使用GAE Python,并允许用户使用现有的Google帐户登录。登录代码很简单:
def _require_login(self, target_url="/"):
if not self.user_bundle.user:
return self.redirect(
self.user_bundle.create_login_url(target_url),
abort=True
)
这会创建一个重定向到谷歌供用户登录,然后成功登录后会被发送回最初尝试导航的地方。
问题似乎是,如果用户同时登录了多个Google / GApps帐户(我们猜测3个或更多我可以成功重现它一次点击5个帐户),他们得到了一个"错误414"来自Google:
我对该错误的简短搜索表明该URL太长,因为它是一个GET请求。几乎所有的建议都指出要使用POST。问题是,我们正在使用Google内置的create_login_url
方法,据我所知,该方法并未提供指定POST而非GET的方法。< / p>
我们如何解决这个问题?
答案 0 :(得分:1)
根据Google Cloud Platform's Twitter account:
不幸的是,目前的修复方法只是注销某些帐户。 &gt;登录的4个帐户会使URL太长(> 2048字节)。
所以现在我们要么做一个预登录页面,它告诉用户注销足够的用户帐户以满足最大数量,或者找一个允许我们让用户登录的外部库无需绕过限制。