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)
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)