Beispiel #1
0
 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'))