Exemplo n.º 1
0
def get_user(user_id):
    """Get a specific user"""
    user = users.get_user(user_id)
    if user is not None:
        return jsonify({'user': user.to_dict()})
    else:
        return jsonify({})
Exemplo n.º 2
0
def github():
    access_token_url = 'https://github.com/login/oauth/access_token'
    users_api_url = 'https://api.github.com/user'

    params = {
        'client_id': request.json['clientId'],
        'redirect_uri': request.json['redirectUri'],
        'client_secret': app.config['GITHUB_SECRET'],
        'code': request.json['code']
    }

    # Step 1. Exchange authorization code for access token.
    r = requests.get(access_token_url, params=params)
    access_token = dict(parse_qsl(r.text))
    headers = {'User-Agent': 'Satellizer'}

    # Step 2. Retrieve information about the current user.
    r = requests.get(users_api_url, params=access_token, headers=headers)
    profile = json.loads(r.text)

    # Step 3. Create a new account or return an existing one.
    user = users.get_user(profile['id'])
    if user:
        token = create_token(user)
        return jsonify(token=token, user_id=user.id)
    else:
        user = users.create_user({
            'id': profile['id'],
            'name': profile['name']
        })
        token = create_token(user)
        return jsonify(token=token, user_id=user.id)