首页 > 解决方案 > 如何使用 MongoEngine 和 Flask-Login 的会话?

问题描述

我正在使用 Flask-Login、MongoEngine、OAuth 和 Rauth for Flask。

我需要在 MongoEngine 中保存我的用户会话,但我不知道该怎么做。

我的代码是:

@app.route('/callback/<provider>')
def oauth_callback(provider):
    if not current_user.is_anonymous:
        return redirect(url_for('index'))
    oauth = OAuthSignIn.get_provider(provider)
    social_id, username, email = oauth.callback()
    if social_id is None:
        flash('Authentication failed.')
        return redirect(url_for('index'))
    user = User.objects(social_id=social_id).first()
    if not user:
        user = User(social_id=social_id, nickname=username, email=email)
        user.save()
        db.session.add(user)
        db.session.commit()
    login_user(user, True)
    return redirect(url_for('index'))

在代码中,这行db.session.add(user)db.session.commit()用于 SQL 但我不知道如何在 MongoEngine 中执行此操作。

有没有什么方法可以在 MongoEngine 中以简单的方式做到这一点?

谢谢!!

标签: pythonoauthmongoengineflask-loginrauth

解决方案


生产线user.save()正在做这项工作。可以current_user.save()根据代码使用。


推荐阅读