def login(self, request): if not current_user.is_anonymous: return None app = current_app._get_current_object() criteria = [ request.is_secure, app.debug == False, request.headers.get('X-Forwarded-Proto', 'http') == 'https' ] scheme = 'http' if any(criteria): scheme = 'https' oauth = OAuthSignIn.get_provider('google') return oauth.authorize(scheme)
def oauth_callback(provider): if not current_user.is_anonymous(): return redirect(url_for('index')) oauth = OAuthSignIn.get_provider(provider) username, uid, email = oauth.callback() if uid is None: print "failed auth" flash('Authentication failed.') return redirect(url_for('index')) session = settings.Session() user = session.query( models.User).filter(models.User.provider_id == uid).first() if not user: user = models.User(username=username, provider_id=uid, email=email) session.add(user) session.flush() session.commit() flask_login.login_user(user) session.close() return redirect(url_for('index'))
def oauth_callback(provider): if not current_user.is_anonymous(): return redirect(url_for('index')) oauth = OAuthSignIn.get_provider(provider) username, uid, email = oauth.callback() if uid is None: print "failed auth" flash('Authentication failed.') return redirect(url_for('index')) session = settings.Session() user = session.query(models.User).filter( models.User.provider_id == uid).first() if not user: user = models.User( username=username, provider_id=uid, email=email) session.add(user) session.flush() session.commit() flask_login.login_user(user) session.close() return redirect(url_for('index'))