烧瓶 - stormpath组创建

时间:2017-02-08 04:05:23

标签: python flask authorization stormpath

我使用Flask-Stormpath创建了一个Python应用程序,并按照文档创建了用于身份验证的组。在添加5行组创建代码之前,程序运行完美。现在,当我编译以下代码时(在这种情况下仅显示app.py的第一部分):

from os import environ

from flask import Flask, session, request, jsonify, g, abort, url_for, redirect, render_template, g, flash, escape
from flask_cors import CORS, cross_origin

from flask_stormpath import StormpathManager, User, login_required, login_user, logout_user, user, groups_required
from stormpath.error import Error as StormpathError
from datetime import timedelta

app = Flask(__name__, static_url_path='/static')

CORS(app)

app.config['DEBUG'] = True
app.config['SECRET_KEY'] = environ.get('SECRET_KEY', 'this_should_be_configured')
app.config['STORMPATH_API_KEY_ID'] = environ.get('STORMPATH_API_KEY_ID')
app.config['STORMPATH_API_KEY_SECRET'] = environ.get('STORMPATH_API_KEY_SECRET')
app.config['STORMPATH_APPLICATION'] = environ.get('STORMPATH_APPLICATION')
app.config['STORMPATH_APPLICATION_HREF'] = environ.get('STORMPATH_APPLICATION_HREF')
app.config['STORMPATH_CLIENT_APIKEY_ID'] = environ.get('STORMPATH_CLIENT_APIKEY_ID')
app.config['STORMPATH_CLIENT_APIKEY_SECRET'] = environ.get('STORMPATH_CLIENT_APIKEY_SECRET')
app.config['STORMPATH_URL'] = environ.get('STORMPATH_URL')
app.config['STORMPATH_ENABLE_LOGIN'] = False
app.config['STORMPATH_ENABLE_REGISTRATION'] = False
app.config['STORMPATH_ENABLE_LOGOUT'] = False

app.config['STORMPATH_COOKIE_DURATION'] = timedelta(minutes=60)

stormpath_manager = StormpathManager(app)
stormpath_manager.login_view = '.login'

# Code to add groups to the application
directory = stormpath_manager.application.default_account_store_mapping.account_store
guests = directory.groups.create({'name': 'guests'})
members = directory.groups.create({'name': 'members'})
managers = directory.groups.create({'name': 'managers'})
admins = directory.groups.create({'name': 'admins'})

我现在从Stormpath库中得到一个编译错误:

  

(venv)Marks-MacBook-Pro-2:flask_heroku markschulz $ python app.py   Traceback(最近一次调用最后一次):     文件“app.py”,第41行,in       directory = stormpath_manager.application.default_account_store_mapping.account_store     申请表中的文件“/Users/markschulz/Projects/maid2match/venv/lib/python2.7/site-packages/flask_stormpath/init.py”,第266行       ctx = stack.top.app   AttributeError:'NoneType'对象没有属性'app'

如何解决此错误需要做什么? “目录”的代码行直接来自Stormpath文档。

1 个答案:

答案 0 :(得分:0)

修改

此答案不适用于您正在构建"一个简单的应用程序特定管理面板作为应用程序的一部分,以便业务管理员类型可以使用。"

原始答案:

您应该使用Stormpath管理面板来实现此目的。登录Stormpath帐户后:

创建群组

  1. 点击导航栏中的Groups按钮。

  2. 点击Create a Group按钮。

  3. 选择目录,然后输入名称和说明。

  4. 有关更多详细步骤(带图片),请参阅here

    向小组添加帐户

    点击导航栏中的Groups按钮。

    点击左侧菜单中的Accounts

    点击Add Existing Account,然后选择要添加到论坛的帐户。

    有关更多详细步骤(带图片),请参阅here