I'm using Flask-Login, MongoEngine, OAuth with Rauth for Flask.
I need to save my user's session in MongoEngine but I don't know how to do it.
My code is that:
@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'))
In code, this lines db.session.add(user)
and db.session.commit()
is for SQL but I dont know how do it in MongoEngine.
Is there any way to do it in MongoEngine in a simple way?
Thanks!!
The line user.save()
is doing the job.
Can use current_user.save()
depending on code.