обновлениеapp.yaml «Логин: требуется» не работает
Является ли этот HTML код внутри шаблона read.html проблемы? Эта гиперссылка обойти app.yaml's 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
My app's 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 ...
а) Я понимаю, что ответ со ссылкой на «статические» файлы, которые я предполагаю не как мои шаблонов в том смысле, что шаблоны сыты входов дзиндзя и
b) Даже если мои шаблоны являются «статическими» файлами, я не понял, как реализовать рекомендацию ответа.
Итак, как можно заставить эти login: required
сработать?
Как вы решили, что он не работает? Если вы уже вошли в систему на локальном хосте, то файл cookie все равно будет там. Посетите/_ah/login и принудительно выйдите из системы, и посмотрите, что произойдет. – Greg
Когда я посещаю '/ _ah/login', я вижу диалоговое окно, в котором говорится« не вошел в систему », и приглашает меня либо войти в систему, либо выйти из системы. Я не знаю, как проверить другие файлы cookie. Я использую localhost. – zerowords