Google app engine Google应用程序引擎-Flask应用程序绕过Devserver上的标准Google Auth

Google app engine Google应用程序引擎-Flask应用程序绕过Devserver上的标准Google Auth,google-app-engine,python-2.7,flask,Google App Engine,Python 2.7,Flask,我是Flask的新手,我正在尝试将我的代码组织为一个大型应用程序,以便在Google App Engine上部署。我正在使用帮助将我的应用程序组织到逻辑包中 应用程序在dev服务器上运行良好,只有一个例外。当我在我的app.yaml中设置login:required或login:admin(请参见下面的app.yaml)时,应用程序会跳过模拟谷歌登录页面,并自动以'test@example.com" 通常,当在app.yaml中设置login:required或login:admin时,我希望看

我是Flask的新手,我正在尝试将我的代码组织为一个大型应用程序,以便在Google App Engine上部署。我正在使用帮助将我的应用程序组织到逻辑包中

应用程序在dev服务器上运行良好,只有一个例外。当我在我的
app.yaml
中设置
login:required
login:admin
(请参见下面的app.yaml)时,应用程序会跳过模拟谷歌登录页面,并自动以'test@example.com"

通常,当在app.yaml中设置login:required或login:admin时,我希望看到标准的Google模拟身份验证表单(如下)。但是,当我将浏览器指向“/”或任何其他uri时,我将直接指向相应的页面,而无需通过此表单进行身份验证。

我不确定我错过了什么/做错了什么。我没有收到任何类型的错误

下面,我介绍了我的应用程序的结构和大部分相关代码,看看是否有人能够指出我在这里做错了什么

/flask_app
  /flask_app
    /mod_one
      /__init__.py
      /forms.py
      /views.py
      /models.py
    /mod_two
      /__init__.py
      /forms.py
      /views.py
      /models.py
    /static
      /css
      ...
    /templates
      /index.html
      ...
    /__init__.py
    /settings.py
    /urls.py
  /lib
  /app.yaml
  /appengine_config.py
  /main.py
app.yaml

application: flask-app
version: 1
runtime: python27
api_version: 1
threadsafe: yes

default_expiration: "30d"

builtins:
  - deferred: on
  - admin_redirect: on

handlers:

- url: /css
  static_dir: flask_app/static/css

- url: /admin/.*
  script: main.app
  login: admin

- url: /.*
  script: main.app
  login: required
appengine_config.py

import sys
import os.path

sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'lib'))
main.py

from flask_app import app

app = app
flask_app/init.py

import os
from flask import Flask
from flask_bootstrap import Bootstrap
from werkzeug.debug import DebuggedApplication


app = Flask(__name__)

if os.getenv('FLASK_CONF') == 'TEST':
    app.config.from_object('flask_app.settings.Testing')

elif 'SERVER_SOFTWARE' in os.environ and os.environ['SERVER_SOFTWARE'].startswith('Dev'):
    # Development settings
    app.config.from_object('flask_app.settings.Development')  

    app.wsgi_app = DebuggedApplication(app.wsgi_app, evalex=True)

else:
    app.config.from_object('flask_app.settings.Production')

# Instantiate Flask-Bootstrap.
Bootstrap(app)

import urls
flask_app/url.py

from flask import render_template
from flask_app import app


@app.route('/')
def index():
    params = {
        'page_title': 'Home'
    }
    return render_template('index.html', **params)


@app.route('/contact')
def contact():
    params = {
        'page_title': 'Contact'
    }
    return render_template('contact.html', **params)


@app.route('/about')
def about():
    params = {
        'page_title': 'About'
    }
    return render_template('about.html', **params)


# Error handlers
# Handle 404 errors
@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404


# Handle 500 errors
@app.errorhandler(500)
def server_error(e):
    return render_template('500.html'), 500

# Register Flask Classy Classes
import mod_one.views as mod_one
import mod_two.views as mod_two

mod_one.OneView.register(app)
mod_two.TwoView.register(app)

正如@Greg在对该问题的评论中指出的,我已经“登录”到dev_appserver(由于我从未看到模拟登录页面,这让我很扫兴),因此身份验证使用默认的test@example.com'用户


当我进入
/\u ah/login
时,我可以访问模拟登录页面,并像往常一样从那里继续操作。

你确定你还没有登录吗?如果您进入/u ah/login,请单击“注销”,然后再试一次发生了什么?@Greg-成功了!然而,我仍然感到困惑的是,在dev_服务器上运行应用程序的第一次和随后的几次时,它从未重定向到模拟登录页面。