为了账号安全,请及时绑定邮箱和手机立即绑定

烧瓶登录(无数据库)

烧瓶登录(无数据库)

摇曳的蔷薇 2021-04-26 20:17:14
我正在尝试在flask中实现以下视图:/ index     *显示带有用户名和密码条目的表单     *提交后,重定向到2/ params     *显示具有更多条目的另一种形式     *仅     在提交时提供了1 *的用户名和密码的情况下可见, *重定向到3/ upload     *对从1&2输入的字段执行magic()     *仅在它们填写1&2时可见我看过的每个教程都假设您使用数据库。不会针对任何数据库检查来自1的用户名和密码。它们仅用于ntlm身份验证...能做到吗?还是我滥用烧瓶?
查看完整描述

2 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

您可以使用一个会话来存储用户名和密码以及一个标志,用于指定用户已完成前两个步骤:


import flask

app = flask.Flask(__name__)

app.secret_key = 'something'



def validate_upload(f):

  def wrapper():

    if 'completed' not in flask.session or not flask.session['completed']:

      return flask.redirect('/')

    return f()

  return wrapper


@app.route('/', methods = ['GET'])

def home():

  html = """

  <form action='/second' method = 'POST'>

    <input type='text' name='username'>

    <input type='password' name='password'>

    <input type='submit' value='Submit'>

  </form>

  """

  return html


@app.route('/second', methods=['POST'])

def second():

  username, password = flask.request.form['username'], flask.request.form['password']

  flask.session['username'] = username

  flask.session['password'] = password

  flask.session['completed'] = True

  return flask.redirect('/upload')


@app.route('/upload', methods=['GET'])

@validate_upload

def do_something():

  return '<p>Doing something with values</p>'


查看完整回答
反对 回复 2021-05-11
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

正如您提到的NTLM身份验证一样,我假设您正在Windows网络中运行。如果是这样,我不确定为什么您需要一个用户可以输入用户名和密码的表格。

NTLM和Kerberos使用Windows会话的主体通过在同一域内运行的服务对用户进行身份验证。用户一次登录Windows,并且在调用服务时会自动使用该身份对用户进行身份验证。

Flask使用Flask-Kerberos模块支持此功能


查看完整回答
反对 回复 2021-05-11
  • 2 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号