realms-wiki/realms/modules/auth/oauth/views.py

31 lines
944 B
Python
Raw Normal View History

2015-10-15 01:36:22 +03:00
from flask import Blueprint, url_for, request, flash, redirect, session
2015-10-14 06:52:30 +03:00
from .models import TwitterUser
blueprint = Blueprint('auth.oauth', __name__)
def oauth_failed(next_url):
2015-10-15 01:36:22 +03:00
flash('You denied the request to sign in.')
2015-10-14 06:52:30 +03:00
return redirect(next_url)
@blueprint.route("/login/twitter")
def login_twitter():
2015-10-15 01:36:22 +03:00
return TwitterUser.app().authorize(callback=url_for('twitter_callback',
next=request.args.get('next') or request.referrer or None))
2015-10-14 06:52:30 +03:00
@blueprint.route('/login/twitter/callback')
def twitter_callback():
next_url = request.args.get('next') or url_for('index')
2015-10-15 01:36:22 +03:00
resp = TwitterUser.app().authorized_response()
2015-10-14 06:52:30 +03:00
if resp is None:
return oauth_failed(next_url)
session['twitter_token'] = (
resp['oauth_token'],
resp['oauth_token_secret']
)
session['twitter_user'] = resp['screen_name']
flash('You were signed in as %s' % resp['screen_name'])
2015-10-15 01:36:22 +03:00
return redirect(next_url)