2016-05-22 8 views
0

更新app.yamlを「ログイン:必要な」

が動作していないが、問題read.htmlテンプレート内でこのhtmlコードですか?このハイパーリンクはapp.yamlのlogin: requiredを迂回しますか?

(<a href ="/edit/{{ blog_id }}/{{ r.key().id() }}">edit </a>) 

更新

私のapp.yamlには、いくつかのlogin: requiredディレクティブが含まれていますが、彼らは私がGAE上でローカルに開発していながら、アクセスを停止していないようです。

application: myapp 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: true 

handlers: 
- url: /static 
    static_dir: static 
- url: /.* 
    script: main.app 

- url: /create.* 
    script: main.app 
    login: required 

- url: /createblog.* 
    script: main.app 
    login: required 

- url: /editblog.* 
    script: main.app 
    login: required 

私のアプリのview.pyは次のように始まります。下部に向かって、テンプレートedit.htmlがトリガーされることに注意してください。しかし、私はログインしたユーザーだけがそのテンプレートにアクセスしたいと思っています。私は、ログインしていないユーザーにログインする機会が与えられても気にしません。

import os 
import jinja2 
import webapp2 

from google.appengine.ext import db 
from google.appengine.api import users 

TEMPLATE_DIR = os.path.join(os.path.dirname(__file__), 'templates') 
JINJA_ENVIRONMENT = jinja2.Environment(
    loader=jinja2.FileSystemLoader(TEMPLATE_DIR), 
    extensions=['jinja2.ext.autoescape'], 
    autoescape=True) 

class BaseHandler(webapp2.RequestHandler): 

    @webapp2.cached_property 
    def jinja2(self): 
     return jinja2.get_jinja2(app=self.app) 

    def render_template(
     self, 
     filename, 
     template_values, 
     **template_args 
     ): 
    template = JINJA_ENVIRONMENT.get_template(filename) 
     self.response.out.write(template.render(template_values)) 


class EditReminder(BaseHandler): 

    def get(self, blog_id, reminder_id): 
     iden = int(reminder_id) 
     reminder = db.get(db.Key.from_path('Blogs',blog_id,'Reminders', iden)) 
    self.render_template('edit.html', {'reminder': reminder, 'blog_id': blog_id}) 

The answer here is informative, but ...

a)は私の理解では、答えは「静的」私はテンプレートが供給された神社の入力があるという意味で、私のテンプレートを好きではないされていると仮定したファイル、および

を参照しているということです

b)テンプレートが「静的」なファイルであっても、回答の推奨事項をどのように実装するかはわかりません。

これで、これらの機能はどのように動作するのですか?

+0

どのように動作していないと判断しましたか? localhostにすでにログインしている場合、Cookieはそこに残ります。/_ah/loginにアクセスし、強制的にログアウトし、何が起こるかを見てください。 – Greg

+0

'/ _ah/login'にアクセスすると、「ログインしていません」というダイアログが表示され、ログインまたはログアウトに招待されます。私は他のクッキーをチェックする方法を知らない。私はlocalhostを使用しています。 – zerowords

答えて

4

置き、あなたのキャッチオール下部のルート

- url: /.* 
    script: main.app 

+0

あなたの答えを見たとき、私は自分自身を発見したところで戻ってきました。 – zerowords

関連する問題