def dispatch_request(self, provider_name): if not current_user.is_anonymous: return redirect(url_for('index')) oauth = OAuthSignIn(provider_name=provider_name) logged_user = oauth.callback() if not logged_user: flash(_('Authentication failed.')) return redirect(url_for('index')) try: user = User.objects.get(email=logged_user['email']) user.avatar = logged_user['avatar'] user.save() except DoesNotExist: user = User(**logged_user) user.save() login_user(user, remember=True) return redirect(request.args.get('next') or url_for('index'))