def oauth_callback(): oauth = OAuthSignIn() discord_id, discord_tag, discord_avatar, discord_locale = oauth.callback() if discord_id is None: flash('Discord authentication failed.') return redirect(url_for('index')) user = models.User.query.filter_by(discord_id=discord_id).first() if not user: while True: token = app.config['LINK_PREFIX'] + \ ''.join(random.choices( string.ascii_lowercase + string.digits, k=5)) token_exists = models.User.query.filter_by(token=token).first() if not token_exists: break user = models.User(discord_id=discord_id, discord_tag=discord_tag, discord_avatar=discord_avatar, discord_locale=discord_locale, created=datetime.datetime.now(), token=token) db.session.add(user) db.session.commit() login_user(user, True) return redirect(url_for('user'))