2009-06-15 43 views
2

我需要添加更多的登录选项,因此需要定制create_login_url与一些HTML代码。有没有办法在谷歌的默认登录屏幕上添加代码? ENvironment - python-google应用程序引擎。 我想继续让默认的google ext类Users用户的行为继续到位。自定义登录谷歌应用程序引擎

+0

没有办法影响Google登录页面本身,除了指定登录后用户将被重定向到的地址。您希望实现的是什么?如果你描述你想要做什么,那将更容易帮助你。 – Blixt 2009-06-15 08:25:16

+0

我想创建一个来自多个域名的登录,包括谷歌使用类似rpxnow的东西,但我不想打扰使用谷歌用户模块现有的凭据代码 – dhaval 2009-06-15 08:44:20

回答

2

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

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

1

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

你不能使用现有的用户模块(除了可能存在一些严重的黑客攻击,但我没有尝试过这样的壮举,并不一定会推荐他们;-),但是所讨论的各种项目倾向于提供可用更换。

当然,从您选择使用的“OpenID使用者”的所有源开始,使用这些方法制作自己的登录页面也并不难。

我不知道,如果你想支持的领域是OpenID提供(虽然我不明白为什么任何网站支持自己的用户登录不会也是一个OpenID提供商 - 它很容易和使用户在该网站上登录更有价值! - ),但我希望这会让你实现目标的一部分!

2

尼克约翰逊最近发布了一个你可以使用的WSGI middleware的alpha版本。该API与应用程序引擎中的标准用户API非常相似。这是一种通过OpenID支持身份验证的方式(Alex Martelli在他的answer中提出的建议)。因此,您可以支持Google作为身份提供者以及其他人。如果您只是想为某些原因支持Google帐户,那么您当然只能将其列入白名单。

尼克的博客announcement还列出了一些需要考虑的事情(这可能是交易断路器你):

  • 用户按OpenID端点唯一标识。
  • 您不能在未指定OpenID URL的情况下构造User对象。
  • 昵称和电子邮件地址是用户提供的,因此它们不保证是唯一的或经过验证的。
  • is_current_user_admin()尚未实现。
  • 登录:app.yaml中的子句不受AEoid的影响 - 它们仍然使用常规用户API进行身份验证。