我使用Flask-Security使用Flask开发了一个用户管理系统。 我想在页面上添加一个Watson聊天机器人,它应该检查用户是否已通过身份验证。这将在Flask-Security内部的登录模块中完成,如下所示:
@app.route('/login', methods=['GET', 'POST'])
def login():
# Here we use a class of some kind to represent and validate our
# client-side form data. For example, WTForms is a library that will
# handle this for us, and we use a custom LoginForm to validate.
form = LoginForm()
if form.validate_on_submit():
# Login and validate the user.
# user should be an instance of your `User` class
login_user(user)
flask.flash('Logged in successfully.')
next = flask.request.args.get('next')
# is_safe_url should check if the url is safe for redirects.
# See http://flask.pocoo.org/snippets/62/ for an example.
if not is_safe_url(next):
return flask.abort(400)
return flask.redirect(next or flask.url_for('index'))
return flask.render_template('login.html', form=form)
当用户开始从聊天界面提问时(例如,从系统中的注册日期开始提问),我们有可能将他/她重定向到Flask的登录页面,并且在身份验证之后,我们返回到对话对话框,提取与已验证用户相关的数据(例如,用户配置文件的记录时间戳)?
答案 0 :(得分:-1)
请参见architecture diagram for Watson Assistant in the app context。 Watson Assistant是或可以只是解决方案的多项服务之一。通常,您的应用将通过反复sending a message to Watson Assistant并获取响应来驱动对话框和对话。
您的Flask应用程序处理整个流程,身份验证以及如何将聊天数据(可能作为聊天窗口)嵌入到UI中。有关不同的身份验证流程,请参见IBM Cloud App ID。此IBM Cloud tutorial基于Flask,并使用App ID实现OIDC。