Exemplo n.º 1
0
def login2():
    redirectURL = request.args.get('state')
    code = request.args.get('code')
    
    if not redirectURL or not code:
        return make_response("Make sure to include state and code query parameters", 404) 
    
    flow = flow_from_clientsecrets(tokenJSONPath, 
                                   scope='openID https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email',
                                   redirect_uri='https://safeguard.192.168.8.217.xip.io:7704/loginCode')
    
    try:
        credentials = flow.step2_exchange(code)
    except:
        return make_response("Failed authentication @ google", 401)
    
    
    http = httplib2.Http()
    http = credentials.authorize(http)
    #service = build("plus", "v1", http=http)
    #data = service.people().get(userId='me').execute()
    
    service = build("oauth2", "v2", http=http)
    data = service.userinfo().get().execute()
    
    androidID = None
    redirectSplit = redirectURL.split("_androidid_")
    if len(redirectSplit) > 1:
        redirectURL = redirectSplit[0]  
        androidID   = redirectSplit[1]
    
    if androidID:
        accesstoken = registerToken("mobile", "composition", data, androidID)
    else:
        accesstoken = registerToken("composition", "composition", data, androidID)
    if not accesstoken:
        return make_response("Failed to register token", 401)
    
    if not androidID:
        if urlparse(redirectURL)[4]:
            redirectURL += '&token=' + accesstoken
        else:
            redirectURL += '?token=' + accesstoken
    else:
        redirectURL = urllib2.unquote(redirectURL) + accesstoken
    
    #criar uma entrada para composicao {clientID, retrive_code} 
    return redirect(redirectURL, code=302)
Exemplo n.º 2
0
def serviceAccess():
    #id/pass cabechalho http
    #clientID cabecalho
    #service query
    token = request.args.get('token')
    if not token:
        return make_response("No token query parameter", 404)
    serviceRequested = request.args.get('service')
    
    if not serviceExists(serviceRequested):
        return make_response("Service not found", 404)   
    
    if not token:
        return make_response("No service query parameter", 404)
    
    #verificar auth do server
    #recuperar nome do servico
    service = getServiceName(request.authorization.username, request.authorization.password)
    if not service:
        return make_response("Failed authentication", 401)
    
    #verificar -> NOT
    userData = getClientData(service, token)
    if not userData:
        return make_response("Client id not found", 404)
    

    clientId = {"id" : userData["id"]} 
    accessToken =  registerToken(service,serviceRequested, clientId)
    
     
    body = {"token":accessToken}
    return make_response(jsonify(body), 200)