def authorized(oauth_token):
"""
authorized: update user table and login session
Args:
oauth_token (str): access token from oauth server
Returns:
return homepage
"""
state = request.args.get('state')
if state != login_session['state']:
response = make_response(json.dumps('Invalid state parameter.'), 401)
response.headers['Content-Type'] = 'application/json'
return response
login_session['access_token'] = oauth_token
data = github.get('user')
email = data['email']
name = data['name']
user = session.query(User).filter_by(email=email).first()
if not user:
user = User(name=name, email=email)
session.add(user)
user.name = name
session.commit()
login_session['user_id'] = user.id
flash("Logged in as %s!" % name)
return redirect(url_for('show_home'))