在Google App Engine中自定义登录

时间:2009-06-15 08:03:23

标签: python google-app-engine authentication registration

我需要为登录添加更多选项,因此需要使用一些HTML代码自定义create_login_url。

有没有办法在Google的默认登录屏幕上添加您的代码?

环境:Python(Google App Engine)

我希望继续使用默认的Google ext class Users行为。

3 个答案:

答案 0 :(得分:2)

您无法自定义登录页面。允许您这样做会引入XSS漏洞的可能性,并使用户更难识别合法的登录页面。

如果您想提供联合登录,您可能只想将用户重定向到插页式页面,以便他们选择标准的Google登录信息或其他一些服务。

答案 1 :(得分:2)

Nick Johnson最近发布了你可以使用的WSGI middleware的alpha版本。该API与应用引擎中的标准用户API非常相似。这是一种通过OpenID支持auth的方法(Alex Martelli在他的answer中提出的建议)。因此,您可以支持Google作为身份提供商以及其他人。如果您出于某种原因只想支持Google帐户,那么您当然只能将它们列入白名单。

尼克的博客announcement还列出了一些需要考虑的事项(这些可能会对您造成破坏):

  • 用户由其OpenID端点唯一标识。
  • 如果不指定OpenID URL,则无法构造User对象。
  • 昵称和电子邮件地址由用户提供,因此无法保证其唯一或经过验证。
  • is_current_user_admin()尚未实施。
  • 登录:app.yaml中的子句不受AEoid的影响 - 他们仍使用常规用户API进行身份验证。

答案 2 :(得分:1)

您可以通过任何各种开源应用程序引擎项目来考虑OpenID,例如Django的this one

你不能将现有的用户模块与那些一起使用(可能还有一些严重的黑客攻击,但我没有尝试过这样的功能,也不一定会推荐它们;-),但是有关的各个项目往往提供可用的替代品

使用这些方法创建自己的登录页面也不是太难,因为您从选择使用的“OpenID使用者”的所有源开始。

我不知道您要支持的所有域名是否都是OpenID提供商(但我不明白为什么任何支持其自己的用户登录的网站也不是OpenID提供商 - - 这很简单,让用户在该网站上登录更有价值! - ),但我希望这会带您走向目标的一部分!