2011-01-24 44 views
2

我有一個基於Python的Web應用程序,在至極一個,我想使用谷歌帳戶,讓用戶登錄很簡單,比方說我的應用程序是:如何在App Engine中使用Google Acounts API? 。

http://myapp.appspot.com/

我想要做的是在用戶使用Google帳戶身份驗證屏幕導航到應用程序時「迎接」用戶,並且只有在登錄後才能看到應用程序界面。

另一種方法是添加一個靜態文件夾,比如說「高級」,在這種情況下,所有用戶都可以在不登錄的情況下看到應用的界面,但是讓我們假設他們想進入:

http://myapp.appspot.com/premium/whatever.htm

所以,在這種情況下,我想限制所有的「/溢價」的URL的登錄用戶...

我知道這是很容易通過做只需將此處理程序添加到我的「app.y中華人民共和國反壟斷法」文件:

- url: /premium/.* 
    script: premium.py 
    login: required 

但事實是,我不明白什麼是‘premium.py’的內容必須是...

你能幫助我的困惑?謝謝!

+0

你已經在你的問題中描述了答案:在任何你想要登錄的處理程序上使用`login:required`。你對什麼感到困惑? – 2011-01-25 00:58:04

+0

嗯,我這樣做,我在我的app.yaml文件中添加了示例處理程序,事情是,我創建了一個名爲「高級」的靜態文件夾,我找到了所有優質內容,並且如果轉到:http:// myapp.appspot.com/premium/spagepage.html即可獲得訪問權限,但即使在「login:required」參數存在的情況下也不會請求登錄,並且如果將其添加到「premium」的靜態處理程序中,則會引發錯誤和從未訪問的頁面,我的問題是什麼是一個「.py」腳本的內容,需要登錄嘗試訪問任何「/高級」網址的用戶?我如何要求登錄該網址? – Jmlevick 2011-01-25 01:07:53

回答

1

app.yaml解決方案應該可以工作。但你也問過如何在python中做到這一點。要麼會工作。兩者都是不必要的那就是:

from google.appengine.api import users 

class Premium(webapp.RequestHandler): 
    def get(self): 
    user = users.get_current_user() 
    if not user: 
     this.redirect(users.create_login_url(this.request.uri)) 
    # Your normal page code here 

(我假設你懂得休息,或真的是你需要閱讀GAE的Hello World教程)

清除出你的瀏覽器的cookies!特別是在使用本地開發環境時。您可能已經登錄,不知道它!

相關問題