在Google App Engin中自定义登录

2024-10-01 09:34:27 发布

您现在位置:Python中文网/ 问答频道 /正文

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

有没有办法在谷歌的默认登录屏幕上添加你的代码?在

环境:Python(Google应用引擎)

我想继续使用默认的googleext类用户行为。在


Tags: 代码用户引擎url环境屏幕html选项
3条回答

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

如果您想提供联合登录,您可能只需要将用户重定向到一个间隙页面,该页面允许用户选择标准的Google登录,或者其他一些服务中的一个。在

您可以考虑使用OpenID,通过各种开源appengine项目,比如针对Django的this one。在

你不能将现有的用户模块与那些(可能是一些严重的黑客攻击,但我没有尝试过这样的壮举,也不一定推荐它们;-),但所讨论的各种项目倾向于提供可用的替代品。在

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

我不知道你想支持的所有域是否都是OpenID提供者(尽管我不明白为什么任何支持自己用户登录的站点都不会是OpenID提供者这很简单,而且用户登录该站点更有价值!-),但我希望这能让你朝着你的目标前进一步!在

nickjohnson最近发布了一个你可以使用的α版本。这个API非常类似于标准的appengine用户API。这是一种通过OpenID支持auth的方法(alexmartelli在他的answer)中建议的方法。因此,你可以支持谷歌作为身份提供者以及其他人。如果你只是出于某种原因想支持谷歌账户,那么你当然只能把它们列为白名单。在

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

  • 用户通过其OpenID端点进行唯一标识。在
  • 在没有指定OpenID URL的情况下,不能构造用户对象。在
  • 昵称和电子邮件地址是用户提供的,因此不能保证它们的唯一性或有效性。在
  • 当前用户尚未实现。在
  • 登录:子句应用程序yaml不受AEoid的影响-他们仍然使用常规用户API进行身份验证。在

相关问题 更多 >