2011-01-24 10 views
2

私はウィッヒ1で、私は、ユーザーがログインできるようにGoogleアカウントを使用したい、PythonのベースのWebアプリケーションを持っている、それは簡単である、のが私のアプリがオンになっているとしましょう:。App EngineでGoogle Acounts APIを使用するには?

http://myapp.appspot.com/

私がしたいのは、Googleアカウント認証画面でユーザーを「挨拶する」ことです。ログインするとアプリのインターフェースが表示されるようにします。

これ以外の方法は、静的フォルダを追加することです。「プレミアム」と言いましょう。この場合、すべてのユーザーはログインせずにアプリのインターフェースを見ることができますが、

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

だから、その場合には、私はそれがで行うのは簡単だ、私は理解して

...ログインユーザーにすべての「/プレミアム」のURLを制限したいと思います私の "app.y"にこのハンドラを追加するだけですAML」ファイル:

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

しかし、事は、私が何をするか理解していない、ある 『premium.py』コンテンツがなければならない...

あなたはこの混乱で私を助けることができますか?ありがとう!

+0

あなたはすでに答えをあなたの質問に書いています:あなたはログイン専用にしたいハンドラで 'login:required'を使います。あなたは何について混乱していますか? –

+0

さて、私はapp.yamlファイルにExample Handlerを追加しました。問題は、プレミアムコンテンツをすべて配置した "premium"という静的フォルダを作成し、http://に移動した場合です。 myapp.appspot.com/premium/somepage.htmlアクセス権を取得しますが、login:requiredパラメータがある場合でもログインを要求することはありません。静的ハンドラに「premium」を追加すると、エラーがスローされます私の質問は、 "/ premium" URLにアクセスしようとするユーザーのログインが必要な ".py"スクリプトの内容はどうなりますか?どうすればそのURLのログインを要求できますか? – Jmlevick

+1

質問にapp.yamlを追加する必要があります。注文が実際のファイルと一致するようにしてください。動的ハンドラで静的コンテンツを実行しているか、その逆の場合もあります。 –

答えて

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チュートリアルを読む必要がある)

クリアアウトブラウザのクッキーを:ここにあります!特に、ローカルの開発環境を使用している場合。あなたはログインしていて、それを知らないかもしれません!

+0

「app.yaml」を正確にトラフする方法私が上で述べたことはうまくいかないようです:S – Jmlevick

関連する問題