2009-06-15 70 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進行身份驗證。