认证后如何从Flask返回令牌到Watson Assistant?

时间:2019-02-16 23:32:15

标签: python flask ibm-cloud ibm-watson watson-conversation

我使用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的登录页面,并且在身份验证之后,我们返回到对话对话框,提取与已验证用户相关的数据(例如,用户配置文件的记录时间戳)?

1 个答案:

答案 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。