我正在一个项目中,每个我的REST
端点都需要进行身份验证。一个例子是
@login_required
def get_transactions(self):
pass
我有一个看起来像User
模型
class User(UserMixin, db.Model):
__tablename__ = 'users'
# noinspection PyShadowingBuiltins
uuid = Column('uuid', GUID(), default=uuid.uuid4, primary_key=True,
unique=True)
email = Column('email', String, nullable=False, unique=True)
_password = Column('password', String, nullable=False)
created_on = Column('created_on', sa.types.DateTime(timezone=True),
default=datetime.utcnow(), nullable=False)
last_login = Column('last_login', sa.types.DateTime(timezone=True),
onupdate=datetime.utcnow())
def __init__(self, email, password):
self.email = email
self._password = hash_password(password) # hash_password does md5 of password
一旦用户登录,我想在客户端会话中存储安全令牌,并希望每个进一步的请求都拥有该令牌
我查找了示例,但不了解如何在客户端会话PLUS中保存这样的安全令牌。
我如何确保其他请求从客户端会话向我发送该令牌。
我不知道这是怎么回事,请帮忙
参考方案
你看过这个例子吗? http://flask.pocoo.org/docs/patterns/viewdecorators/?highlight=login_required
如果您不想自己重写内容,还可以使用以下类似模块:
http://pythonhosted.org/Flask-Login/
http://pythonhosted.org/Flask-Auth/
无论如何,对于在会话中存储数据,这应该相当容易。只需将其放在flask.session中:
import flask
# You want to automatically generate the token and store it somewhere on the server (database for example)
flask.session['some_token'] = some_token
您的令牌可能是这样的:
class Session(db.Model):
token = Column('token') # auto generated thingy
# foreign key to user for example
# expiration time/date
Flask Cors无法运作 - python我正在尝试在Flask应用程序中启用CORS,但无论我把来源如何,似乎总是可以从浏览器访问URL。我不知道我做错了什么。这是我的代码from flask import Flask, jsonify from flask_cors import CORS app = Flask(__name__) CORS(app, resources={r'/*&…
flask:异常后停止服务器 - python我想在发生未处理的异常时立即停止我的Flask服务器。这是一个例子:from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): 1/0 # argh, exception return 'Hello World!' i…
Flask Web服务器的外部可见性问题 - python我已经设法安装flask并运行hello-world脚本:from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main_…
python flask如何从URL获取路由ID - python我正在用烧瓶。我有一个网址,例如:http://example.com/page/page_id我想知道如何从路线中的网址获取page_id部分。我希望我可以设计出一些方法,例如:@route('/page/page_id') def page(page_id): pageid = page_id 参考方案 这非常简单-在尖括号之间传递p…
Python Eve包含过滤器 - python有什么方法可以返回字段包含某些值的项目?例如。GET /people?contains="foo"返回名称中带有“ foo”一词的所有人。提前致谢 参考方案 您可以使用mongodb $regex运算符,该运算符在Eve(MONGO_QUERY_BLACKLIST = ['$where', '$regex…