예제 #1
0
    def get_linkedin_oauth_client(
        self, scope='r_basicprofile,r_emailaddress',
        token='linkedin_oauth_token'
    ):
        """Returns a instance of WebCollect

        :param scope: Scope of information to be fetched from linkedin
        :param token: Token for authentication
        """
        if not all([self.linkedin_api_key, self.linkedin_api_secret]):
            current_app.logger.error("LinkedIn api settings are missing")
            flash(_("LinkedIn login is not available at the moment"))
            return None

        oauth = OAuth()
        linkedin = oauth.remote_app(
            'linkedin',
            base_url='https://api.linkedin.com',
            request_token_url='/uas/oauth/requestToken',
            access_token_url='/uas/oauth/accessToken',
            authorize_url='/uas/oauth/authenticate',
            consumer_key=self.linkedin_api_key,
            consumer_secret=self.linkedin_api_secret,
            request_token_params={'scope': scope}
        )
        linkedin.tokengetter_func = lambda *a: session.get(token)
        return linkedin
예제 #2
0
    def get_google_oauth_client(self):
        """
        Returns a instance of WebCollect
        """
        if not all([self.google_app_id, self.google_app_secret]):
            current_app.logger.error("Google api settings are missing")
            flash(_("Google login is not available at the moment"))
            return None

        oauth = OAuth()
        google = oauth.remote_app(
            'google',
            base_url='https://www.google.com/accounts/',
            request_token_url=None,
            access_token_url='https://accounts.google.com/o/oauth2/token',
            access_token_method='POST',
            authorize_url='https://accounts.google.com/o/oauth2/auth',
            consumer_key=self.google_app_id,
            consumer_secret=self.google_app_secret,
            request_token_params={
                'response_type': 'code',
                'scope': 'email',
            },
            access_token_params={'grant_type': 'authorization_code'}
        )
        google.tokengetter_func = lambda *a: session.get('google_oauth_token')
        return google
예제 #3
0
def app_init(cfg='../config.py'):
    ''' Initialises the flask app. '''

    app        = Flask( __name__, static_folder=os.path.abspath('static'))
    app.register_blueprint(API, url_prefix='/api')
    app.config.from_pyfile(cfg)
    app.debug      =   app.config.get('DEBUG')
    app.secret_key = app.config.get('SECRET_KEY')
    oauth = OAuth()

    '''GOOGLE_CLIENT_ID = conf.GOOGLE_CLIENT_ID
    GOOGLE_CLIENT_SECRET = conf.GOOGLE_CLIENT_SECRET
    '''

    google = oauth.remote_app('google',
      base_url='https://www.google.com/accounts/',
      authorize_url='https://accounts.google.com/o/oauth2/auth',
      request_token_url=None,
      request_token_params={
        'scope': 'https://www.googleapis.com/auth/userinfo.email',
        'response_type': 'code'},
      access_token_url='https://accounts.google.com/o/oauth2/token',
      access_token_method='POST',
      access_token_params={'grant_type': 'authorization_code'},
      consumer_key=app.config.get('GOOGLE_CLIENT_ID'),
      consumer_secret=app.config.get('GOOGLE_CLIENT_SECRET'))

    return app, google
예제 #4
0
    def get_facebook_oauth_client(self, site=None):
        """Returns a instance of WebCollect

        :param site: Browserecord of the website, If not specified, it will be
                     guessed from the request context
        """
        if site is None:
            site = request.nereid_website

        if not all([site.facebook_app_id, site.facebook_app_secret]):
            current_app.logger.error("Facebook api settings are missing")
            flash(_("Facebook login is not available at the moment"))
            return None

        oauth = OAuth()
        facebook = oauth.remote_app('facebook',
            base_url='https://graph.facebook.com/',
            request_token_url=None,
            access_token_url='/oauth/access_token',
            authorize_url='https://www.facebook.com/dialog/oauth',
            consumer_key=site.facebook_app_id,
            consumer_secret=site.facebook_app_secret,
            request_token_params={'scope': 'email'}
        )
        facebook.tokengetter_func = lambda *a: session.get(
                'facebook_oauth_token'
        )
        return facebook
예제 #5
0
    def get_linkedin_oauth_client(self, site=None, 
            scope='r_basicprofile,r_emailaddress',
            token='linkedin_oauth_token'):
        """Returns a instance of WebCollect

        :param site: Browserecord of the website, If not specified, it will be
                     guessed from the request context
        """
        if site is None:
            site = request.nereid_website

        if not all([site.linkedin_api_key, site.linkedin_api_secret]):
            current_app.logger.error("LinkedIn api settings are missing")
            flash(_("LinkedIn login is not available at the moment"))
            return None

        oauth = OAuth()
        linkedin = oauth.remote_app('linkedin',
            base_url='https://api.linkedin.com',
            request_token_url='/uas/oauth/requestToken',
            access_token_url='/uas/oauth/accessToken',
            authorize_url='/uas/oauth/authenticate',
            consumer_key=site.linkedin_api_key,
            consumer_secret=site.linkedin_api_secret,
            request_token_params={'scope': scope}
        )
        linkedin.tokengetter_func = lambda *a: session.get(token)
        return linkedin
예제 #6
0
파일: fblogin.py 프로젝트: Kimerie/ltel
def load_resources(app):
    oauth = OAuth()

    facebook = oauth.remote_app('facebook',
        base_url='https://graph.facebook.com/',
        request_token_url=None,
        access_token_url='/oauth/access_token',
        authorize_url='https://www.facebook.com/dialog/oauth',
        consumer_key=app.config['FACEBOOK_APP_ID'],
        consumer_secret=app.config['FACEBOOK_APP_SECRET'],
        request_token_params={'scope': ('email, ')}
    )

    @facebook.tokengetter
    def get_facebook_token():
        return session.get('facebook_token')

    def pop_login_session():
        session.pop('logged_in', None)
        session.pop('facebook_token', None)

    @app.route("/facebook_login/")
    def facebook_login():
        return facebook.authorize(callback=url_for('facebook_authorized',
            next=request.args.get('next'), _external=True))

    @app.route("/facebook_authorized/")
    @facebook.authorized_handler
    def facebook_authorized(resp):
        next_url = request.args.get('next') or url_for('index')
        if resp is None or 'access_token' not in resp:
            return redirect(next_url)

        session['logged_in'] = True
        session['facebook_token'] = (resp['access_token'], '')
        data = facebook.get('/me').data
        if 'id' in data and 'name' in data:
            session['user_id'] = data['id']
            session['user_name'] = data['name']

        return redirect(next_url)

    @app.route("/logout/")
    def logout():
        pop_login_session()
        return redirect(url_for('index'))
예제 #7
0
def get_auth_client(config):

    client_id = config.get("GOOGLE_CLIENT_ID", "")
    client_secret = config.get("GOOGLE_CLIENT_SECRET", "")

    oauth = OAuth()
    google = oauth.remote_app(
        "google",
        base_url="https://www.google.com/accounts/",
        authorize_url="https://accounts.google.com/o/oauth2/auth",
        request_token_url=None,
        request_token_params={"scope": "https://www.googleapis.com/auth/userinfo.email", "response_type": "code"},
        access_token_url="https://accounts.google.com/o/oauth2/token",
        access_token_method="POST",
        access_token_params={"grant_type": "authorization_code"},
        consumer_key=client_id,
        consumer_secret=client_secret,
    )
    return google
예제 #8
0
def get_tweets():
	oauth = OAuth()
	twitter = oauth.remote_app('twitter',base_url='https://api.twitter.com/1.1/',request_token_url='https://api.twitter.com/oauth/request_token',access_token_url='https://api.twitter.com/oauth/access_token',authorize_url='https://api.twitter.com/oauth/authenticate',consumer_key='MH1GPY8XpYgT9P5zVlWeDjHaQ',consumer_secret='cmq6yblCsQiXD9LVwKK7Xh5DcZTA3fwlNPykWMzVegDMOWMkAm')

	session['twitter_token'] = (
		'2835780022-2UlRmdzQLVbel8qr2RiQsDzPnSOhUBqW8JYmIoE',
		't7mHe7nZqPO1y9dz5tLQRQFcXJZlB4h5MUfi2pdPdO0pg'
	)

	@twitter.tokengetter
	def get_twitter_token(token=None):
		return session.get('twitter_token')

	# Search for tweets containing these words
	queries = ['mihogo','cassava','njaa','chakula ghali','hakuna chakula','enough food','expensive food','no food','mahindi','wali']
	tweets = {}

	resp = twitter.get('search/tweets.json', data = {
			'q': 'hungry',
			'geocode': '1,38,500km',
			'result_type': 'recent',
			'count':'5',
			})

	tweets = resp.data

	for query in queries:
		resp = twitter.get('search/tweets.json', data = {
			'q': query,
			'geocode': '1,38,500km',
			'result_type': 'recent',
			'count':'5',
			})

		if resp.status == 200:
			tweets['statuses'].extend(resp.data['statuses'])
		else:
			tweets = None
			flash('whoops - couldn\'t get tweets :(')

	return tweets
예제 #9
0
    def get_facebook_oauth_client(self):
        """
        Returns a instance of WebCollect
        """
        if not all([self.facebook_app_id, self.facebook_app_secret]):
            current_app.logger.error("Facebook api settings are missing")
            flash(_("Facebook login is not available at the moment"))
            return None

        oauth = OAuth()
        facebook = oauth.remote_app(
            "facebook",
            base_url="https://graph.facebook.com/",
            request_token_url=None,
            access_token_url="/oauth/access_token",
            authorize_url="https://www.facebook.com/dialog/oauth",
            consumer_key=self.facebook_app_id,
            consumer_secret=self.facebook_app_secret,
            request_token_params={"scope": "email"},
        )
        facebook.tokengetter_func = lambda *a: session.get("facebook_oauth_token")
        return facebook
예제 #10
0
def get_tweet_html(id):
	oauth = OAuth()
	twitter = oauth.remote_app('twitter',base_url='https://api.twitter.com/1.1/',request_token_url='https://api.twitter.com/oauth/request_token',access_token_url='https://api.twitter.com/oauth/access_token',authorize_url='https://api.twitter.com/oauth/authenticate',consumer_key='MH1GPY8XpYgT9P5zVlWeDjHaQ',consumer_secret='cmq6yblCsQiXD9LVwKK7Xh5DcZTA3fwlNPykWMzVegDMOWMkAm')

	session['twitter_token'] = (
		'2835780022-2UlRmdzQLVbel8qr2RiQsDzPnSOhUBqW8JYmIoE',
		't7mHe7nZqPO1y9dz5tLQRQFcXJZlB4h5MUfi2pdPdO0pg'
	)

	@twitter.tokengetter
	def get_twitter_token(token=None):
		return session.get('twitter_token')

	resp = twitter.get('statuses/oembed.json', data = {
		'id': id,
		'hide_media': 'true'
		})
	if resp.status == 200:
		tweet_html = resp.data
	else:
		tweet_html = None
		flash('whoops - couldn\'t get tweets :(')

	return tweet_html['html']
예제 #11
0
파일: oauth.py 프로젝트: yamini16/VB_UI
    def __init__(self, app):

        app.config.setdefault('HEROKU_OAUTH_SCOPE', 'global')
        app.config.setdefault('HEROKU_OAUTH_PATH', '/auth/heroku/callback')
        app.config.setdefault('HEROKU_OAUTH_LOGOUT_PATH', '/auth/heroku/logout')
        app.config.setdefault('HEROKU_OAUTH_BASE_URL', 'http://localhost:5000/')
        app.config.setdefault('HEROKU_OAUTH_ID', None)
        app.config.setdefault('HEROKU_OAUTH_SECRET', None)

        self.app = app

        oauth = OAuth()
        self.oauth = oauth.remote_app('heroku',
            base_url=self.baseurl,
            request_token_url=None,
            access_token_url='https://id.heroku.com/oauth/token',
            authorize_url='https://id.heroku.com/oauth/authorize',
            consumer_key=self.id,
            consumer_secret=self.secret,
            request_token_params={
                'response_type': 'code',
                'scope': self.scope
            }
        )

        self.app.add_url_rule(
            self.auth_path,
            view_func=self.authorize,
            endpoint="heroku_auth_login"
        )

        self.app.add_url_rule(
            self.logout_path,
            view_func=self.logout,
            endpoint="heroku_auth_logout"
        )
예제 #12
0
파일: twitter.py 프로젝트: hasgeek/lastuser
    def __init__(self, name, title, key, secret, access_key, access_secret, at_login=True, priority=True, icon=None):
        self.name = name
        self.title = title
        self.at_login = at_login
        self.priority = priority
        self.icon = icon
        self.consumer_key = key
        self.consumer_secret = secret
        self.access_key = access_key
        self.access_secret = access_secret
        oauth = OAuth()
        twitter = oauth.remote_app('twitter',
            base_url='https://api.twitter.com/1/',
            request_token_url='https://api.twitter.com/oauth/request_token',
            access_token_url='https://api.twitter.com/oauth/access_token',
            authorize_url='https://api.twitter.com/oauth/authenticate',
            consumer_key=key,
            consumer_secret=secret,
            )

        twitter.tokengetter(lambda token=None: None)  # We have no use for tokengetter

        self.callback = twitter_exception_handler(twitter.authorized_handler(self.unwrapped_callback))
        self.twitter = twitter
예제 #13
0
파일: app.py 프로젝트: HammadB/hack-tech
from db import Database
from math import ceil

ID = '447046728730795'
SECRET = 'd35de165559856b3479fa650909642ed'
KEY = 'aneeshhammadluke'

app = Flask(__name__)
app.debug = True
app.secret_key = KEY
oauth = OAuth()

fb = oauth.remote_app('facebook',
		base_url='https://graph.facebook.com/',
		request_token_url=None,
		access_token_url='/oauth/access_token',
		authorize_url='https://facebook.com/dialog/oauth',
		consumer_key=ID,
		consumer_secret= SECRET,
		request_token_params={'scope':('email, read_mailbox, read_stream, user_photos, user_friends, read_friendlists')})

@fb.tokengetter
def get_token():
	return session.get('oauth_token')

@app.route('/')
@app.route('/index')
def index():
	return render_template('index.html')

@app.route('/login')
def login():
예제 #14
0
    user = User.query.filter_by(username=username).first()
    if user is None:
        user = User(username)
        db.session.add(user)
        db.session.commit()
    #
    # Log the user in
    #
    return redirect(url_for('blog.home'))


facebook = oauth.remote_app(
    'facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key='784131115083402',
    consumer_secret='93835302657b088f25c095e811301b40',
    request_token_params={'scope': 'email'})

twitter = oauth.remote_app(
    'twitter',
    base_url='https://api.twitter.com/1.1/',
    request_token_url='https://api.twitter.com/oauth/request_token',
    access_token_url='https://api.twitter.com/oauth/access_token',
    authorize_url='https://api.twitter.com/oauth/authenticate',
    consumer_key='pCctFa1eMT1D8WOMfVPrxfSsZ',
    consumer_secret='a5lC1xmjeGBZAzCque228ifBypAE832E00SsRYdByxe5Zt1qPG')

예제 #15
0
파일: app.py 프로젝트: AnthonySica/QBaims
# configuration
SECRET_KEY = 'dev key'
DEBUG = True

# setup flask
app = Flask(__name__)
app.debug = DEBUG
app.secret_key = SECRET_KEY

if config.AUTH_TYPE == 'OAuth1':
    oauth = OAuth()

    qbo = oauth.remote_app('qbo',
                           base_url=config.OAUTH1_BASE,
                           request_token_url=config.REQUEST_TOKEN_URL,
                           access_token_url=config.ACCESS_TOKEN_URL,
                           authorize_url=config.AUTHORIZE_URL,
                           consumer_key=config.CONSUMER_KEY,
                           consumer_secret=config.CONSUMER_SECRET)


@app.route('/')
def index():
    """Index route"""
    global customer_list
    customer_list = excel.load_excel()
    return render_template(
        'index.html',
        customer_dict=customer_list,
        title="QB Customer Leads",
    )
예제 #16
0
or find one that works with your web framework.
"""

import urllib2
from flask import Blueprint, request, Response, redirect, session, url_for, flash, json
from werkzeug.exceptions import BadRequest, Unauthorized
from flask_oauth import OAuth, OAuthException
from indicomobile import app
from indicomobile.views.errors import generic_error_handler

oauth_client = Blueprint('oauth_client', __name__, template_folder='templates')
oauth = OAuth()
oauth_indico_mobile = oauth.remote_app('indico_mobile',
                                       base_url=app.config['INDICO_URL'],
                                       request_token_url=app.config['REQUEST_TOKEN_URL'],
                                       access_token_url=app.config['ACCESS_TOKEN_URL'],
                                       authorize_url=app.config['AUTHORIZE_URL'],
                                       consumer_key=app.config['CONSUMER_KEY'],
                                       consumer_secret=app.config['CONSUMER_SECRET'])


@oauth_indico_mobile.tokengetter
def get_token():
    return session.get('indico_mobile_oauthtok')


@oauth_client.route('/login/', methods=['GET'])
def login():
    return oauth_indico_mobile.authorize(callback=urllib2.unquote(url_for('.oauth_authorized',
                                         next=request.args.get('next') or request.referrer or None, _external=True)))
예제 #17
0
from flask_oauth import OAuth
from config import GOOGLE_OAUTH_ID, GOOGLE_OAUTH_SECRET, TWITTER_OAUTH_ID, TWITTER_OAUTH_SECRET, FACEBOOK_OAUTH_ID, FACEBOOK_OAUTH_SECRET

oauth = OAuth()

google = oauth.remote_app(
    'google',
    base_url='https://www.google.com/accounts/',
    authorize_url='https://accounts.google.com/o/oauth2/auth',
    request_token_url=None,
    request_token_params={
        'scope': 'email profile',
        'response_type': 'code'
    },
    access_token_url='https://accounts.google.com/o/oauth2/token',
    access_token_method='POST',
    access_token_params={'grant_type': 'authorization_code'},
    consumer_key=GOOGLE_OAUTH_ID,
    consumer_secret=GOOGLE_OAUTH_SECRET)

twitter = oauth.remote_app(
    'twitter',
    base_url='https://api.twitter.com/1.1/',
    request_token_url='https://api.twitter.com/oauth/request_token',
    access_token_url='https://api.twitter.com/oauth/access_token',
    authorize_url='https://api.twitter.com/oauth/authenticate',
    consumer_key=TWITTER_OAUTH_ID,
    consumer_secret=TWITTER_OAUTH_SECRET)

facebook = oauth.remote_app(
    'facebook',
예제 #18
0
oauth = OAuth()

app.config['SECRET_KEY'] = variables.SECRET_KEY
app.config["UPLOAD_FOLDER"] = variables.UPLOAD_FOLDER
app.config["RETURN_FOLDER"] = variables.RETURN_FOLDER
# RETURN_FOLDER = variables.RETURN_FOLDER
UPLOAD_FOLDER = variables.UPLOAD_FOLDER

# default is expire in 1 hour: https://stackoverflow.com/questions/13851157/oauth2-and-google-api-access-token-expiration-time
google = oauth.remote_app('google',
                          base_url='https://www.google.com/accounts/',
                          authorize_url='https://accounts.google.com/o/oauth2/auth',
                          request_token_url=None,
                          request_token_params={'scope': 'https://www.googleapis.com/auth/userinfo.email',
                                                'response_type': 'code',
                                                'prompt':'consent',  # this field allows refresh_token to be generated every time
                                                'access_type':'offline'},
                          access_token_url='https://accounts.google.com/o/oauth2/token',
                          access_token_method='POST',
                          access_token_params={'grant_type': 'authorization_code'},
                          consumer_key=GOOGLE_CLIENT_ID,
                          consumer_secret=GOOGLE_CLIENT_SECRET)

def authenticate(f):
    @wraps(f)
    def wrap(*args, **kwargs):
        # access_token = session.get('access_token')
        # # print("ACCESS TOKEN: {}".format(access_token))
        # if access_token is None:
        #     return redirect(url_for('login'))
        # access_token = access_token[0]
예제 #19
0
    user = User.query.filter_by(username=username).first()
    if user is None:
        user = User(username)
        db.session.add(user)
        db.session.commit()

    session['username'] = username
    return redirect(url_for('blog.home'))


facebook = oauth.remote_app(
    'facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key=getenv('FACEBOOK_CONSUMER_KEY'),
    consumer_secret=getenv('FACEBOOK_SECRET_KEY'),
    request_token_params={'scope': 'email'})

twitter = oauth.remote_app(
    'twitter',
    base_url='https://api.twitter.com/1.1/',
    request_token_url='https://api.twitter.com/oauth/request_token',
    access_token_url='https://api.twitter.com/oauth/access_token',
    authorize_url='https://api.twitter.com/oauth/authenticate',
    consumer_key=getenv('TWITTER_CONSUMER_KEY'),
    consumer_secret=getenv('TWITTER_CONSUMER_SECRET'))

예제 #20
0
    user = User.query.filter_by(username=username).first()
    if user is None:
        user = User(username)
        db.session.add(user)
        db.session.commit()

    session['username'] = username
    return redirect(url_for('blog.home'))


facebook = oauth.remote_app(
    'facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key='',
    consumer_secret='',
    request_token_params={'scope': 'email'})

twitter = oauth.remote_app(
    'twitter',
    base_url='https://api.twitter.com/1.1/',
    request_token_url='https://api.twitter.com/oauth/request_token',
    access_token_url='https://api.twitter.com/oauth/access_token',
    authorize_url='https://api.twitter.com/oauth/authenticate',
    consumer_key='',
    consumer_secret='')

예제 #21
0
import base64
import json
import os
from urllib import urlencode
from config import *

app = Flask(__name__)
app.secret_key = 'abcdeghji'
app.debug = True
oauth = OAuth()

facebook = oauth.remote_app('facebook',
    base_url=BASE_URL,
    request_token_url=REQUEST_TOKEN_URL,
    access_token_url=ACCESS_TOKEN_URL,
    authorize_url=AUTHORIZE_URL,
    consumer_key=CONSUMER_KEY,
    consumer_secret=CONSUMER_SECRET,
    request_token_params={'scope': 'user_photos, user_photo_video_tags,  friends_photo_video_tags',},
)

def validate_signed_fb_request(signed_request):
    """ Returns dictionary with signed request data """
    try:
        l = signed_request.split('.', 2)
        encoded_sig = str(l[0])
        payload = str(l[1])
    except IndexError:
        raise ValueError("'signed_request' malformed")
    
    sig = base64.urlsafe_b64decode(encoded_sig + "=" * ((4 - len(encoded_sig) % 4) % 4))
예제 #22
0
파일: server.py 프로젝트: waqas64/hal
from wemo_controller import wemo
import settings

app = Flask(__name__)
app.secret_key = settings.SECRET_KEY
app.debug = True

# Google OAuth setup
oauth = OAuth()
google = oauth.remote_app(
    "google",
    base_url="https://www.google.com/accounts/",
    authorize_url="https://accounts.google.com/o/oauth2/auth",
    request_token_url=None,
    request_token_params={
        "scope": "https://www.googleapis.com/auth/userinfo.email",
        "response_type": "code"
    },
    access_token_url="https://accounts.google.com/o/oauth2/token",
    access_token_method="POST",
    access_token_params={"grant_type": "authorization_code"},
    consumer_key=settings.GOOGLE_CLIENT_ID,
    consumer_secret=settings.GOOGLE_CLIENT_SECRET)


@google.tokengetter
def get_access_token():
    return session.get("access_token")


@app.route("/")
def default():
예제 #23
0
logging.getLogger("requests").setLevel(logging.WARNING)
logging.getLogger("urllib3").setLevel(logging.WARNING)

app = Flask('twitter-gender-proportion')
app.config['SECRET_KEY'] = os.environ['COOKIE_SECRET']
app.config['DRY_RUN'] = False

CONSUMER_KEY = os.environ.get('CONSUMER_KEY')
CONSUMER_SECRET = os.environ.get('CONSUMER_SECRET')
TRACKING_ID = os.environ.get('TRACKING_ID')

oauth = OAuth()
twitter = oauth.remote_app(
    'twitter',
    base_url='https://api.twitter.com/1/',
    request_token_url='https://api.twitter.com/oauth/request_token',
    access_token_url='https://api.twitter.com/oauth/access_token',
    authorize_url='https://api.twitter.com/oauth/authenticate',
    consumer_key=os.environ['CONSUMER_KEY'],
    consumer_secret=os.environ['CONSUMER_SECRET'])


@twitter.tokengetter
def get_twitter_token(token=None):
    return session.get('twitter_token')


@app.route('/login')
def login():
    callback = '/authorized'
    next_url = request.args.get('next') or request.referrer
    if next_url:
예제 #24
0
FACEBOOK_APP_ID = '296763407509160'
FACEBOOK_APP_SECRET = '6799f7f9623bab0918ce7531bc774506'

app = Flask(__name__)

app.debug = DEBUG
app.secret_key = SECRET_KEY
oauth = OAuth()

facebook = oauth.remote_app(
    'facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key=FACEBOOK_APP_ID,
    consumer_secret=FACEBOOK_APP_SECRET,
    request_token_params={
        'scope': 'user_likes',
        'auth_type': 'rerequest'
    },
)


@app.route('/')
def index():
    return redirect(url_for('login'))


@app.route('/login')
def login():
예제 #25
0
import os
import humanize
import dateutil.parser

MY_STATHAT_USER = os.environ.get('STATHAT_USER')
MY_CONSUMER_KEY = os.environ.get('CONSUMER_KEY')
MY_CONSUMER_SECRET = os.environ.get('CONSUMER_SECRET')

# Setup
# ----------------------------
oauth = OAuth()
fitbit_app = oauth.remote_app(
    'fitbit',
    base_url='https://api.fitbit.com',
    request_token_url='http://api.fitbit.com/oauth/request_token',
    access_token_url='http://api.fitbit.com/oauth/access_token',
    authorize_url='http://www.fitbit.com/oauth/authorize',
    consumer_key=MY_CONSUMER_KEY,
    consumer_secret=MY_CONSUMER_SECRET
)


# Logging
# ----------------------------

def email_log(message):
    msg = Message("%s Notice Fitboard" % (message),
                  recipients=["*****@*****.**"])
    msg.body = "NOTICE %s \n Logile Attached \n" % (message)
    with app.open_resource("fitboard.log") as fp:
        msg.attach("fitboard.log", "text/plain", fp.read())
예제 #26
0
파일: auth.py 프로젝트: pheelixx/konvert
from flask_oauth import OAuth
from config import OAUTH_CREDENTIALS

AUTH = {
    'facebook': 1,
    'vk':       2,
    'google':   3,
    'yandex':   4
}

oauth = OAuth()
credentials = OAUTH_CREDENTIALS
twitter = oauth.remote_app('twitter',
                           base_url='https://api.twitter.com/',
                           request_token_url='https://api.twitter.com/oauth2/request_token',
                           access_token_url='https://api.twitter.com/oauth2/access_token',
                           authorize_url='https://api.twitter.com/oauth2/authorize',
                           consumer_key='AQHivz7uPxuO1TTe7GlCFWHPB',
                           consumer_secret='CuiZoB2DhU6fDGmx9qibWAjUc2EC3uRkhuV4uqDixjYIE4aKgH'
                           )

vk = oauth.remote_app('vk',
                      base_url='https://api.vk.com/',
                      request_token_url=None,
                      access_token_url='https://oauth.vk.com/access_token',
                      authorize_url='https://oauth.vk.com/authorize',
                      consumer_key=credentials['vk']['key'],
                      consumer_secret=credentials['vk']['secret'],
                      request_token_params={'scope': 'email'}
                      )

app.secret_key = 'some_random_key'

login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'login'

oid = OpenID(app, 'openid-store')

oauth = OAuth()

facebook = oauth.remote_app('facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key='FACEBOOK_APP_ID',
    consumer_secret='FACEBOOK_APP_SECRET',
    request_token_params={'scope': 'email'}
)

google = oauth.remote_app('google',
    base_url='https://www.google.com/accounts/',
    authorize_url='https://accounts.google.com/o/oauth2/auth',
    request_token_url=None,
    request_token_params={
        'scope': 'https://www.googleapis.com/auth/userinfo.email',
        'response_type': 'code'
    },
    access_token_url='https://accounts.google.com/o/oauth2/token',
    access_token_method='POST',
예제 #28
0
class ClientPosts():
    def __init__(self, client, since):
        self.oauth = OAuth()
        self.client = client
        self.since = since
        self.INFLUX = db.init_influxdb()
        self.ES = db.init_elasticsearch()
        self.fb_app = self.oauth.remote_app(
            'facebook',
            base_url='https://graph.facebook.com',
            request_token_url=None,
            access_token_url='/oauth/access_token',
            authorize_url='https://www.facebook.com/dialog/oauth',
            consumer_key=config.FACEBOOK_APP_ID,
            consumer_secret=config.FACEBOOK_APP_SECRET,
        )
        self.fb_app.tokengetter(self.get_token)
        self.get_feed()

    def get_token(self):
        return (self.client.facebook_page.token, config.FACEBOOK_APP_SECRET)

    def get_count(self, url):
        name = "insights.{}.post.{}".format(self.client._id, url)
        q = "select count(type) from {}".format(name)
        try:
            res = self.INFLUX.query(q)
            return res[0]['points'][0][1]
        except Exception as e:
            logging.warn(e)
            return None

    def write_data(self, post):
        p_id = post.get("id")
        post['client'] = str(self.client._id)
        self.ES.index(index=config.ES_INDEX,
                      doc_type=config.POST_RECORD_TYPE,
                      body=post,
                      id=p_id)
        shares = post.get("shares", {}).get("count", 0)
        tm = time.time()
        self.write_influx([(tm, shares, 'shares')],
                          url="{}.{}".format(p_id, "shares"))
        for i in POST_INSIGHTS:
            url = "{}.{}".format(p_id, i)
            count = self.get_count(url)
            points = [(time.time(), 0, i)] if count == None else []
            data = post.get(i)
            for d in data[count:]:
                ct = d.get("created_time")
                if ct:
                    tm = time.mktime(
                        time.strptime(d.get("created_time"), date_format))
                    logging.info("Comment Time:{}".format(tm))
                else:
                    tm = time.time()

                points.append((tm, 1, i))

            self.write_influx(points, url)

    def get_feed(self):
        id = self.client.facebook_page.id
        data = {"limit": 250}
        if self.since:
            data['since'] = time.mktime(self.since.timetuple())
        res = self.fb_app.get(
            "/v2.2/{}/feed".format(id),
            data=data,
        )
        for p in res.data.get('data'):
            p_id = p.get("id")
            for i in POST_INSIGHTS:
                p[i] = self.page(p_id, i, p.get(i, {}))
            self.write_data(p)
            since = datetime.datetime.strptime(p.get("created_time"),
                                               date_format)
            i = Insights(client=self.client,
                         id=p.get('id'),
                         since=since,
                         typ="post")

    def page(self, post_id, typ, data):
        res = [a for a in data.get("data", [])]
        cursors = data.get("paging", {}).get("cursors", {})
        if cursors.get('before') == cursors.get('after'): return res
        last = {'before': cursors['before'], 'after': cursors['after']}
        for i in last:
            while last[i]:
                resp = self.fb_app.get(
                    "/v2.2/{}/{}".format(post_id, typ),
                    data={
                        "limit": 250,
                        i: cursors[i]
                    },
                )
                res += [a for a in resp.data.get("data")]
                af = resp.data.get("paging", {}).get(i)
                last[i] = af if af != last[i] else None

        return res

    def write_influx(self, points, url):
        data = [
            dict(name="insights.{}.post.{}".format(self.client._id, url),
                 columns=["time", "value", "type"],
                 points=points)
        ]
        logging.info("Writing: {}".format(data))
        try:
            res = self.INFLUX.write_points(data)
            logging.info(res)
        except Exception as e:
            logging.warning(e)
예제 #29
0
#
# This code is not pythonic - 
#
#*****************************************************************************

from flask_oauth import OAuth
from flask import redirect
from flask import session

oauth=OAuth()
callbackurl = 'https://oauthclient.com/api/forms/login'

twitter = oauth.remote_app('twitter',
    base_url='https://api.twitter.com/1/',
    request_token_url='https://api.twitter.com/oauth/request_token',
    access_token_url='https://api.twitter.com/oauth/access_token',
    authorize_url='https://api.twitter.com/oauth/authenticate',
    consumer_key='<your key here>',
    consumer_secret='<your secret here>'
)

@twitter.tokengetter
#Registers function get_twitter_token as tokengetter
def get_twitter_token(token=None):
    """This method is used to get the access token received earlier from the
    auth server or Identity provider on a per user basis. Saving it in 
    session keeps the token on a user basis. Can/should this be stored in db?
    """
    return session.get('twitter_token')

@app.route('/users/<userid>/data')
#Need to recheck this endpoint- when user clicks show my bank info after 
예제 #30
0
oauth = OAuth()

facebook = Blueprint(
    "facebook",
    __name__,
    template_folder=config.TEMPLATES,
    subdomain=config.ADMIN_SUBDOMAIN,
    url_prefix="/auth/facebook",
)

fb_app = oauth.remote_app(
    'facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key="841699302554888",
    consumer_secret="415f6cd36c605c47486dedcf27dbe23a",
    request_token_params={
        'scope': 'manage_pages,read_insights,ads_management'
    })


@fb_app.tokengetter
def get_facebook_token(token=None):
    sa = current_user.social.facebook
    return (sa.token, sa.secret)


@facebook.route("/login", methods=['GET', 'POST'])
@login_required
예제 #31
0
파일: app.py 프로젝트: davelester/spotifont
from os import environ
from flask import Flask, g, render_template, Response, redirect, url_for, flash, request, session
from flask_oauth import OAuth
import config

app = Flask(__name__)
app.debug = config.DEBUG
app.secret_key = config.SECRET_KEY
oauth = OAuth()

# Facebook-specific OAuth Config
facebook = oauth.remote_app(
    'facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key=config.FACEBOOK_APP_ID,
    consumer_secret=config.FACEBOOK_APP_SECRET,
    request_token_params={'scope': 'email'})


@app.before_request
def connect_db():
    g.db = Connection(config.SPOTIFONT_DB_HOST, config.SPOTIFONT_DB_NAME,
                      config.SPOTIFONT_DB_USER, config.SPOTIFONT_DB_PASSWD)


@app.after_request
def close_connection(response):
    g.db.close()
예제 #32
0
    'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile',
    'response_type': 'code'
}

if settings.GOOGLE_APPS_DOMAIN:
    request_token_params['hd'] = settings.GOOGLE_APPS_DOMAIN
else:
    logger.warning(
        "No Google Apps domain defined, all Google accounts allowed.")

google = oauth.remote_app(
    'google',
    base_url='https://www.google.com/accounts/',
    authorize_url='https://accounts.google.com/o/oauth2/auth',
    request_token_url=None,
    request_token_params=request_token_params,
    access_token_url='https://accounts.google.com/o/oauth2/token',
    access_token_method='POST',
    access_token_params={'grant_type': 'authorization_code'},
    consumer_key=settings.GOOGLE_CLIENT_ID,
    consumer_secret=settings.GOOGLE_CLIENT_SECRET)

blueprint = Blueprint('google_oauth', __name__)


def get_user_profile(access_token):
    headers = {'Authorization': 'OAuth ' + access_token}
    response = requests.get('https://www.googleapis.com/oauth2/v1/userinfo',
                            headers=headers)

    if response.status_code == 401:
예제 #33
0
LAYBY_PAYMENTS_URL = "https://www.fulfilleddesires.net/SALVAGE_SITE_WEB/AU/hookme/REST-CSConnector.awp?thingie=makepartpayment&identifier="
ZIP_DECLINE_URL = "https://www.fulfilleddesires.net/SALVAGE_SITE_WEB/AU/hookme/REST-CSConnector.awp?thingie=ziporderrejected&identifier="
RESET_REQUEST_URL = "https://www.fulfilleddesires.net/SALVAGE_SITE_WEB/AU/hookme/REST-CSConnector.awp?thingie=forgot-password-request"
RESET_DATAGET_URL = "https://www.fulfilleddesires.net/SALVAGE_SITE_WEB/AU/hookme/REST-CSConnector.awp?thingie=details-from-request"
GLOBAL_BASE_URL = "https://www.fulfilleddesires.net/SALVAGE_SITE_WEB/AU/awp_syshooks"
SCHEDULE_URL = "https://www.fulfilleddesires.net/SALVAGE_SITE_WEB/AU/hookme/REST-CSConnector.awp?thingie=schedulepayment"
#-------------------------------------------------------------------------------
#                          FACEBOOK AUTHENTICATION
#-------------------------------------------------------------------------------
oauth = OAuth()

facebook = oauth.remote_app(
    'facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key=app.config['FACEBOOK']['APP_ID'],
    consumer_secret=app.config['FACEBOOK']['APP_SECRET'],
    request_token_params={'scope': ('email, ')})


#-------------------------------------------------------------------------------
#                          FACEBOOK AUTH ROUTES
#-------------------------------------------------------------------------------
@app.route('/facebook')
def facebookGet():
    return facebook.authorize(callback=url_for(
        'facebook_authorized', next=request.args.get('next'), _external=True))

예제 #34
0
from flask import redirect, url_for, session, request, render_template, jsonify
from flask_oauth import OAuth
from random import randint
from algorithm import User, app, db, fb
import hashlib

DEBUG = True
oauth = OAuth()
facebook = oauth.remote_app(
    'facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key="YOUR KEY HERE",
    consumer_secret="YOUR SECRET HERE",
    request_token_params={
        'scope':
        'user_likes, user_photos, user_friends, user_status, user_posts, read_insights, read_audience_network_insights, read_custom_friendlists, public_profile'
    })


@app.route('/')
def index():
    return render_template("login.html")


@app.route('/login')
def login():
    return facebook.authorize(callback=url_for('facebook_authorized',
                                               next=request.args.get('next')
예제 #35
0
# ------------------------------------------------------------------------------

REDIRECT_URI = '/oauth2callback'

application = Flask(__name__)
application.debug = True
application.secret_key = SECRET_KEY
oauth = OAuth()

google = oauth.remote_app('SmarterEmail',
                          base_url='https://www.googleapis.com/gmail/v1/users/me/messages',
                          authorize_url='https://accounts.google.com/o/oauth2/auth',
                          request_token_url=None,
                          request_token_params={'scope': 'https://www.googleapis.com/auth/gmail.readonly',
                                                'response_type' : 'code'},
                          access_token_url='https://accounts.google.com/o/oauth2/token',
                          access_token_method='POST',
                          access_token_params={'grant_type': 'authorization_code'},
                          consumer_key=GOOGLE_CLIENT_ID,
                          consumer_secret=GOOGLE_CLIENT_SECRET)

# ------------------------------------------------------------------------------


def stream_template(template, **context):
    """ Streams data to template while stuff happens back here. """

    application.update_template_context(context)
    t = application.jinja_env.get_template(template)
예제 #36
0
# setup flask
app = Flask(__name__)
app.debug = DEBUG
app.secret_key = SECRET_KEY
oauth = OAuth()

# Use Twitter as example remote application
twitter = oauth.remote_app(
    'twitter',
    # unless absolute urls are used to make requests, this will be added
    # before all URLs.  This is also true for request_token_url and others.
    base_url='https://api.twitter.com/1.1/',
    # where flask should look for new request tokens
    request_token_url='https://api.twitter.com/oauth/request_token',
    # where flask should exchange the token with the remote application
    access_token_url='https://api.twitter.com/oauth/access_token',
    # twitter knows two authorizatiom URLs.  /authorize and /authenticate.
    # they mostly work the same, but for sign on /authenticate is
    # expected because this will give the user a slightly different
    # user interface on the twitter side.
    authorize_url='https://api.twitter.com/oauth/authenticate',
    # the consumer keys from the twitter application registry.
    consumer_key='qUqCpiM61QgeF8c1ll4gEsK5v',
    consumer_secret='ZEKy0bhAPzqtTOVloJb31GdnnBXQU0zsXsW9ohKx6Urtw7lQ2q')


@twitter.tokengetter
def get_twitter_token(token=None):
    return session.get('twitter_token')

예제 #37
0
        flash('Invalid login. Please try again.', 'danger')
        return redirect(url_for('main.login'))

    user = User.query.filer_by(username=username).first()
    if user is None:
        user = User(username)
        db.session.add(user)
        db.session.commit()
    load_user(user.id)
    """
    # 用户登录
    session['username'] = user.username.data
    """
    return redirect(url_for('blog.home'))


facebook = oauth.remote_app(
    'facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key='114768079229706',
    consumer_secret='2740b800deeee5585e072e7be70a3379',
    request_token_params={'scope': 'email'})


@facebook.tokengetter
def get_facebook_oauth_token():
    return session.get('facebook_oauth_token')
예제 #38
0
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.login import LoginManager
from flask.ext.openid import OpenID
from flask_oauth import OAuth
from config import basedir
import os

app = Flask(__name__)
app.config.from_object('config')
db = SQLAlchemy(app)
lm = LoginManager()
lm.init_app(app)
lm.login_view = 'login'
oid = OpenID(app, os.path.join(basedir, 'tmp'))
oauth = OAuth()
facebook = oauth.remote_app(
    'facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key=413764145465595,
    consumer_secret='8eb287f3edce544d0a5ad20c2b6a2c90',
    request_token_params={'scope': 'email'})
from app import views, models
예제 #39
0
app = Flask(__name__)
app.secret_key = 'secret'
config = json.load(open('config.json'))

#{
#"APPID":"<appid>",
#"MYHOST":"<this host>",
#"REDIRECT_ROUTE":"<call back route registered with auth service>",
#"SECRET":"<secret>",
#"TOKENURL":"https://oauth.web.cern.ch/OAuth/Token",
#"AUTHORIZEURL":"https://oauth.web.cern.ch/OAuth/Authorize"
}

oauth = OAuth()
oauth_app = oauth.remote_app('oauth_app',
    base_url=None,
    request_token_url=None,
    access_token_url=config['TOKENURL'],
    authorize_url=config['AUTHORIZEURL'],
    consumer_key = config['APPID'],
    consumer_secret = config['SECRET'],
    request_token_params= {'response_type':'code','scope':'bio'},
    access_token_params = {'grant_type':'authorization_code'},
    access_token_method = 'POST'
)

def user_data(access_token):
    r = requests.get('https://oauthresource.web.cern.ch/api/Me',
        headers = {'Authorization':'Bearer {}'.format(session['access_token'])})
    return r.json()
예제 #40
0
파일: app.py 프로젝트: SwagCity/DYA
from flask import Flask, render_template, request, redirect, session, url_for, flash, jsonify
import json, urllib, urllib2
import key
from bson.objectid import ObjectId

app = Flask(__name__)

app.secret_key = "don't store this on github"
app.debug = True

oauth = OAuth()
facebook = oauth.remote_app('facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key=key.key()[0],
    consumer_secret=key.key()[1],
    request_token_params={'scope': 'user_friends, email'}
)

def login_required(f):
    @wraps(f)
    def inner(*args, **kwargs):
        if session["name"]==None:
            flash("You must login to access this protected page!")
            session['nextpage'] = request.url
            return redirect(url_for('login'))
        return f(*args, **kwargs)
    return inner
예제 #41
0
    keys = json.loads(keyfile.read())
    FIREBASE_KEY = keys['FIREBASE_KEY']
    FIREBASE_SECRET = keys['FIREBASE_SECRET']
    FLASK_SECRET = keys['FLASK_SECRET']
    TWITTER_KEY = keys['TWITTER_KEY']
    TWITTER_SECRET = keys['TWITTER_SECRET']

# Global Objects
app = Flask(__name__)
app.secret_key = FLASK_SECRET
firebase = firebase.FirebaseApplication(FIREBASE_ADDR, None)
oauth = OAuth()
twitter = oauth.remote_app('twitter',
    base_url='https://api.twitter.com/1.1/', #API_V1.1
    request_token_url='https://api.twitter.com/oauth/request_token',
    access_token_url='https://api.twitter.com/oauth/access_token',
    authorize_url='https://api.twitter.com/oauth/authorize',
    consumer_key=TWITTER_KEY,
    consumer_secret=TWITTER_SECRET
)

# Twitter Session
@twitter.tokengetter
def get_twitter_token(token=None):
    return session.get('twitter_token')

# Index
@app.route('/')
def index():
    return render_template('index.html')

# Login 
예제 #42
0
from listenit_db import *


app = Flask(__name__, static_folder='static', static_url_path='static')
app.config.from_envvar('SETTINGS')

oauth = OAuth()
vk_client = VKClient(api_url=app.config['VK_API_URL'])
db = Database(db_name=app.config['DB_NAME'], db_path=app.config['DB_PATH'])


vk_oauth = oauth.remote_app('vk',
	base_url				= app.config['VK_OAUTH_URL'],	
	consumer_key			= app.config['VK_APP_ID'],
	consumer_secret			= app.config['VK_APP_SECRET'],
	access_token_url		= '/access_token',
	authorize_url			= '/authorize',
	request_token_url		= None,	
	request_token_params	= {'scope': 'email'}
)

@vk_oauth.tokengetter
def get_vk_oauth_token():	
	return session.get('oauth_token')


class AuthorizationError(Exception):
	pass

def redirect_if_error(function):
	@functools.wraps(function)
예제 #43
0
REDIRECT_URI = '/microsoft_callback' 

SECRET_KEY = 'development key'
DEBUG = True

app = Flask(__name__)
app.debug = DEBUG
app.secret_key = SECRET_KEY
oauth = OAuth()

microsoft = oauth.remote_app('microsoft',
    base_url='https://login.live.com',
    authorize_url='https://login.live.com/oauth20_authorize.srf',
    request_token_url=None,
    request_token_params={'scope': 'wl.signin wl.emails',
                          'response_type': 'code'},
    access_token_url='https://login.live.com/oauth20_token.srf',
    access_token_method='POST',
    access_token_params={'grant_type': 'authorization_code'},
    consumer_key=MICROSOFT_CLIENT_ID,
    consumer_secret=MICROSOFT_CLIENT_SECRET)

@app.route('/')
def index():
    access_token = session.get('access_token')
    if access_token is None:
        return redirect(url_for('login'))

    access_token = access_token[0]
    from urllib2 import Request, urlopen, URLError
예제 #44
0
파일: server.py 프로젝트: tejal29/isafe
import tweepy
from flask_oauth import OAuth
from dm import parse_tweets
from engine.initiate_dm import get_ngo, initiate_dm

consumer_key=os.environ['TWITTER_CONSUMER_KEY']
consumer_secret=os.environ['TWITTER_CONSUMER_SECRET']
access_token_key=os.environ['TWITTER_ACCESS_TOKEN_KEY']
access_token_secret=os.environ['TWITTER_ACCESS_TOKEN_SECRET']

oauth = OAuth()

twitter = oauth.remote_app('twitter',
  base_url='https://api.twitter.com/1.1/',
  request_token_url='https://api.twitter.com/oauth/request_token',
  access_token_url='https://api.twitter.com/oauth/access_token',
  authorize_url='https://api.twitter.com/oauth/authenticate',
  consumer_key=consumer_key,
  consumer_secret=consumer_secret
)

TWITTER_REQUEST_TOKEN = 'https://api.twitter.com/oauth/request_token'

app = Flask(__name__)

# Required to use Flask sessions and the debug toolbar
app.secret_key = "ABC"

DATABASE_URL = os.environ.get("DATABASE_URL",
                              "postgresql://localhost/isafe_db")

secret_key = os.environ.get("FLASK_SECRET_KEY", "ABC")
예제 #45
0
or find one that works with your web framework.
"""

import urllib2
from flask import Blueprint, request, Response, redirect, session, url_for, flash, json
from werkzeug.exceptions import BadRequest, Unauthorized
from flask_oauth import OAuth, OAuthException
from indicomobile import app
from indicomobile.views.errors import generic_error_handler

oauth_client = Blueprint('oauth_client', __name__, template_folder='templates')
oauth = OAuth()
oauth_indico_mobile = oauth.remote_app('indico_mobile',
    base_url=app.config['INDICO_URL'],
    request_token_url=app.config['REQUEST_TOKEN_URL'],
    access_token_url=app.config['ACCESS_TOKEN_URL'],
    authorize_url=app.config['AUTHORIZE_URL'],
    consumer_key=app.config['CONSUMER_KEY'],
    consumer_secret=app.config['CONSUMER_SECRET']
)

@oauth_indico_mobile.tokengetter
def get_token():
    return session.get('indico_mobile_token')


@oauth_client.route('/login/', methods=['GET'])
def login():
    return oauth_indico_mobile.authorize(callback=urllib2.unquote(url_for('.oauth_authorized',
        next=request.args.get('next') or request.referrer or None, _external=True)))

@oauth_client.route('/logout/', methods=['GET'])
    return jsonify({'name':'Rafael Sandroni','user':'******','picture':'https://getmdl.io/templates/dashboard/images/user.jpg','reviews':'22','score':'TOP'})


#OAuth


oauth = OAuth()

FACEBOOK_APP_ID = '1562276827406360'
FACEBOOK_APP_SECRET = '005e8d19cb24bfb35c5dea8c71968e7d'

facebook = oauth.remote_app('facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key=FACEBOOK_APP_ID,
    consumer_secret=FACEBOOK_APP_SECRET,
    request_token_params={'scope': 'email,user_photos'}
)


@app.route('/registerWithFacebook')
def registerWithFacebook():
    return facebook.authorize(callback=url_for('facebook_authorized',
        next=request.args.get('next') or request.referrer or None,action='register',
        _external=True))

@app.route('/loginWithFacebook')
def loginWithFacebook():
    return facebook.authorize(callback=url_for('facebook_authorized',
예제 #47
0
import src.views
import random
import string
from os import environ

from flask import Flask
from flask_oauth import OAuth

app = Flask(__name__, static_folder='static')

app.secret_key = environ['SECRET_KEY']
oauth = OAuth()

google = oauth.remote_app(
    'google',
    base_url='https://www.google.com/accounts/',
    authorize_url='https://accounts.google.com/o/oauth2/auth',
    request_token_url=None,
    request_token_params={
        'scope': 'https://www.googleapis.com/auth/userinfo.email',
        'response_type': 'code'
    },
    access_token_url='https://accounts.google.com/o/oauth2/token',
    access_token_method='POST',
    access_token_params={'grant_type': 'authorization_code'},
    consumer_key=
    "894460636145-4f5invh6pj5jb1ttg6bg79ejni1vunou.apps.googleusercontent.com",
    consumer_secret=environ['GOOGLE_CLIENT_SECRET'])

import src.views
예제 #48
0
#     3. Show the information when you are logging.
#     4. Set the Login Messages type as `information`.
login_manager.login_view = "main.login"
login_manager.session_protection = "strong"
login_manager.login_message = "Please login to access this page."
login_manager.login_message_category = "info"
# login_manager.anonymous_user = CustomAnonymousUser

# Create the Flask-OAuth's instance
oauth = OAuth()
# Create the auth object for facebook.
facebook = oauth.remote_app(
    'facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key='1634926073468088',
    consumer_secret='a45ec6096ad272c4d61788b912a66394',
    request_token_params={'scope': 'email'})
# Create the auth object for twitter.
twitter = oauth.remote_app(
    'twitter',
    base_url='https://api.twitter.com/1.1/',
    request_token_url='https://api.twitter.com/oauth/request_token',
    access_token_url='https://api.twitter.com/oauth/access_token',
    authorize_url='https://api.twitter.com/oauth/authenticate',
    consumer_key='<TWITTER_APP_ID>',
    consumer_secret='<TWITTER_APP_SECRET>')

# Create the Flask-Youku's instance
예제 #49
0
# setup flask
app = Flask(__name__)
app.debug = DEBUG
app.secret_key = SECRET_KEY
oauth = OAuth()

# Use Twitter as example remote application
twitter = oauth.remote_app('twitter',
    # unless absolute urls are used to make requests, this will be added
    # before all URLs.  This is also true for request_token_url and others.
    base_url='https://api.twitter.com/1/',
    # where flask should look for new request tokens
    request_token_url='https://api.twitter.com/oauth/request_token',
    # where flask should exchange the token with the remote application
    access_token_url='https://api.twitter.com/oauth/access_token',
    # twitter knows two authorizatiom URLs.  /authorize and /authenticate.
    # they mostly work the same, but for sign on /authenticate is
    # expected because this will give the user a slightly different
    # user interface on the twitter side.
    authorize_url='https://api.twitter.com/oauth/authenticate',
    # the consumer keys from the twitter application registry.
    consumer_key='xBeXxg9lyElUgwZT6AZ0A',
    consumer_secret='aawnSpNTOVuDCjx7HMh6uSXetjNN8zWLpZwCEU4LBrk'
)

# setup sqlalchemy
engine = create_engine(DATABASE_URI)
db_session = scoped_session(sessionmaker(autocommit=False,
                                         autoflush=False,
                                         bind=engine))
Base = declarative_base()
예제 #50
0
파일: views.py 프로젝트: gluker/jaot
CLIENT_SECRET = json.loads(
    open(PATH_TO_CLIENT_SECRET, 'r').read())['web']['client_secret']
APPLICATION_NAME = "Jaot"

login_manager.init_app(app)
login_manager.login_view = 'login'

principals = Principal(app)
admin_permission = Permission(RoleNeed('admin'))
oauth = OAuth()
    
facebook = oauth.remote_app('facebook',
    base_url = "https://graph.facebook.com/v2.3/",
    request_token_url = None,
    access_token_url = "/oauth/access_token",
    authorize_url="https://www.facebook.com/dialog/oauth",
    consumer_key = app.config['FB_APP_KEY'],
    consumer_secret = app.config['FB_APP_SECRET'],
    request_token_params = {'scope':'email'}
    )
google = oauth.remote_app('google',
    base_url='https://www.google.com/accounts/',
    authorize_url='https://accounts.google.com/o/oauth2/auth',
    request_token_url=None,
    request_token_params={'scope': 'https://www.googleapis.com/auth/userinfo.email',
                          'response_type': 'code'},
    access_token_url='https://accounts.google.com/o/oauth2/token',
    access_token_method='POST',
    access_token_params={'grant_type': 'authorization_code'},
    consumer_key=CLIENT_ID,
    consumer_secret=CLIENT_SECRET)
예제 #51
0
FACEBOOK_APP_ID = '1616471035080729'
FACEBOOK_APP_SECRET = 'c8361be5b9f39436dd6aa1442181fde6'

app = Flask(__name__)
app.debug = DEBUG
app.secret_key = SECRET_KEY
oauth = OAuth()

# I added the following config otherwise, everytime the redirect was giving warning
app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False

facebook = oauth.remote_app(
    'facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key=FACEBOOK_APP_ID,
    consumer_secret=FACEBOOK_APP_SECRET,
    # request_token_params={'scope': ['public_profile','user_friends','email']}
    request_token_params={'scope': 'public_profile, user_friends, email'})

# @app.route('/home-me')
# def check_something():
#     return render_template("homepage.html")


@app.route('/')
def index():

    # print session['token']
예제 #52
0
DEBUG = os.environ.get('DEBUG')

app = Flask(__name__)
app.debug = DEBUG
app.secret_key = SECRET_KEY
app.port = PORT
app.host = '0.0.0.0'
oauth = OAuth()

# to connect to a remote app create a OAuth object and register a remote app using remote_app()
google = oauth.remote_app('google',
    base_url='https://www.google.com/accounts/',
    authorize_url='https://accounts.google.com/o/oauth2/auth',
    request_token_url=None,
    request_token_params={'scope': 'https://www.googleapis.com/auth/calendar',
        'response_type': 'code'},
    access_token_url='https://accounts.google.com/o/oauth2/token',
    access_token_method='POST',
    access_token_params={'grant_type': 'authorization_code'},
    consumer_key=GOOGLE_CLIENT_ID,
    consumer_secret=GOOGLE_CLIENT_SECRET)


@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404


@app.route('/favicon.ico')
def favicon():
    return send_from_directory("/static", "favicon.ico")
예제 #53
0
from flask_oauth import OAuth
import os
import mongo
import datetime

app = Flask(__name__) 

app.secret_key = os.environ.get('API_SECRET_KEY')

oauth = OAuth()

facebook = oauth.remote_app('facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key= os.environ.get('CONSUMER_KEY'),
    consumer_secret=os.environ.get('CONSUMER_SECRET'),
    request_token_params={'scope': ('email, ')}
)

@app.route('/')
def index():
	return render_template('index.html')

@facebook.tokengetter
def get_facebook_token(token=None):
	return session.get('facebook_token')

def pop_login_session():
	session.pop('logged_in', None)
예제 #54
0
DEBUG = True

app = Flask(__name__)
app.debug = DEBUG
app.secret_key = SECRET_KEY
oauth = OAuth()

sentry = oauth.remote_app(
    'sentry',
    base_url=BASE_URL,
    authorize_url='{}/oauth/authorize/'.format(BASE_URL),
    request_token_url=None,
    request_token_params={
        'scope': 'project:releases event:read org:read org:write',
        'response_type': 'code'
    },
    access_token_url='{}/oauth/token/'.format(BASE_URL),
    access_token_method='POST',
    access_token_params={
        'grant_type': 'authorization_code',
    },
    consumer_key=CLIENT_ID,
    consumer_secret=CLIENT_SECRET,
)


@app.route('/')
def index():
    access_token = session.get('access_token')
    if access_token is None:
        return ('<h1>Who are you?</h1>'
예제 #55
0
파일: fb.py 프로젝트: m3nadav/outfitsus
# init db connection
eng = create_engine("mysql://*****:*****@localhost/outfitsus", encoding='utf-8', echo=False)
meta = MetaData(bind=eng)
meta.reflect()
class User(object):
    pass
class Post(object):
    pass
usermapper = mapper(User, meta.tables['fb_logged_users'])
postmapper = mapper(Post, meta.tables['fb_users_posts'])

facebook = oauth.remote_app('facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key=FACEBOOK_APP_ID,
    consumer_secret=FACEBOOK_APP_SECRET,
    request_token_params={'scope': 'email,user_birthday,user_photos,publish_actions,user_friends,user_relationships,user_status,read_stream'}
)

def allowed_pics(filename):
    return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS

@app.route('/')
def index():
    if not get_facebook_oauth_token():
        return redirect(url_for('login'))
    return redirect(url_for('init'))

@app.route('/logout')
예제 #56
0
파일: app.py 프로젝트: vigneshklncit/wowgic
    return intercom.handle_instagram_authorization()


#------------------------------------------------------------------------------#
#                       facebook authentication                                #
#------------------------------------------------------------------------------#

# To get an access token to consume the API on behalf of a user, use a suitable OAuth library for your platform
oauth = OAuth()

facebook = oauth.remote_app(
    'facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key=globalS.dictDb['FACEBOOK_APP_ID'],
    consumer_secret=globalS.dictDb['FACEBOOK_APP_SECRET'],
    request_token_params={
        'scope':
        'user_location,user_hometown,user_work_history,user_education_history'
    })


@app.route('/facebook_login')
def facebook_login():
    return facebook.authorize(callback=url_for('_facebook_authorized',
                                               next=request.args.get('next')
                                               or request.referrer or None,
                                               _external=True))

예제 #57
0
DATABASE = 'data/flaskr.db'
DEBUG = True
SECRET_KEY = 'development key'
AUTHORS = ['petemarshall77']

# On Bluemix, get the port number from environment variable VCAP_APP_PORT
# or default to 5000 on localhost
port = int(os.getenv('VCAP_APP_PORT', 5000))


# Set up OAuth link to Twitter
oauth = OAuth()
twitter = oauth.remote_app('twitter',
                           base_url = 'https://api.twitter.com/1',
                           request_token_url = 'https://api.twitter.com/oauth/request_token',
                           access_token_url = 'https://api.twitter.com/oauth/access_token',
                           authorize_url = 'https://api.twitter.com/oauth/authorize',
                           consumer_key = os.getenv('TWITTER_CONSUMER_KEY'),
                           consumer_secret = os.getenv('TWITTER_CONSUMER_SECRET'))

# Create the application
app = Flask(__name__)
app.config.from_object(__name__)


def connect_db():
    """Connect to the specified database"""
    return sqlite3.connect(app.config['DATABASE'])

def init_db():
    """Run script to (re)initialize database"""
예제 #58
0
GOOGLE_CLIENT_SECRET = 'l7a5ztJX5bW9iZBTq81GP-pg'
REDIRECT_URI = '/oauth2callback'
SECRET_KEY = '8(2:W\x909\x01\xb3F\xd0\x11\x85\xc56\xd1h\xf5\x1bu\r[\xab\x9f'

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
app.secret_key = SECRET_KEY

oauth = OAuth()
google = oauth.remote_app(
	'google',
	base_url='https://www.google.com/accounts/',
	authorize_url='https://accounts.google.com/o/oauth2/auth',
	request_token_url=None,
	request_token_params={'scope': 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/calendar',
		                'response_type': 'code'},
	access_token_url='https://accounts.google.com/o/oauth2/token',
	access_token_method='POST',
	access_token_params={'grant_type': 'authorization_code'},
	consumer_key=GOOGLE_CLIENT_ID,
	consumer_secret=GOOGLE_CLIENT_SECRET
)

# login required decorator
def login_required(f):
    @wraps(f)
    def wrap(*args, **kwargs):
        if 'logged_in' in session:
            return f(*args, **kwargs)
        else:
            #flash('You need to login first.')
예제 #59
0
from flask_oauth import OAuth
from model import db, Usuario

TWITTER_APP_ID = 'F3MOphJZbUNFn7UdbNnwFg'
TWITTER_APP_SECRET = 'rVBDWIAYEJvehgwgA3fgDiKlXcANNr9shwOjLsi6nA'
FACEBOOK_APP_ID = '523024991088570'
FACEBOOK_APP_SECRET = 'e75ff46a7b0bcd6b949db7fc14c7a1cf'

oauth = OAuth()

twitter = oauth.remote_app('twitter',
    base_url='https://api.twitter.com/1/',
    request_token_url='https://api.twitter.com/oauth/request_token',
    access_token_url='https://api.twitter.com/oauth/access_token',
    authorize_url='https://api.twitter.com/oauth/authenticate',
    consumer_key=TWITTER_APP_ID,
    consumer_secret=TWITTER_APP_SECRET
)

facebook = oauth.remote_app('facebook',
    base_url='https://graph.facebook.com/',
    request_token_url=None,
    access_token_url='/oauth/access_token',
    authorize_url='https://www.facebook.com/dialog/oauth',
    consumer_key=FACEBOOK_APP_ID,
    consumer_secret=FACEBOOK_APP_SECRET,
    request_token_params={'scope': 'email'}
)

def usuario_en_session(session):
    if 'user_id' in session:
예제 #60
0
db = SQLAlchemy(app)
admin = Admin(app, name='tops', template_mode='bootstrap3')
oauth = OAuth()
app.config.update(
    GOOGLE_CONSUMER_KEY=
    '655313797231-1m1s6aqi70aedl9k6bh6h3trbpge8t6r.apps.googleusercontent.com',
    GOOGLE_CONSUMER_SECRET='i9N3ZAmve-5ljeDcBoSDXHyA',
    SECRET_KEY='just a secret key, to confound the bad guys',
    DEBUG=True)
google = oauth.remote_app(
    'google',
    base_url='https://www.google.com/accounts/',
    authorize_url='https://accounts.google.com/o/oauth2/auth',
    request_token_url=None,
    request_token_params={
        'scope': 'https://www.googleapis.com/auth/userinfo.email',
        'response_type': 'code'
    },
    access_token_url='https://accounts.google.com/o/oauth2/token',
    access_token_method='POST',
    access_token_params={'grant_type': 'authorization_code'},
    consumer_key=app.config['GOOGLE_CONSUMER_KEY'],
    consumer_secret=app.config['GOOGLE_CONSUMER_SECRET'])


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String)
    tops = db.Column(db.Integer)
    total_tops = db.Column(db.Integer)

    def to_dict(self):