コード例 #1
0
def api_login():
    logging.info("api_login Type " + request.method)
    if request.method == 'POST':
        name = request.args.get("name", "")
        email = request.args.get("email", "")
# once store token verified send a request for credential for gplus
    access_token = request.args.get("oauth", "")
    gplus_id = request.args.get("gplusid", "")

    #check for valid arguments
    if name == "" or email == "" or access_token == "" or gplus_id == "":
        return json_response(code=400)

    url = ("https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=%s" %
           access_token)
    h = httplib2.Http()
    result = json.loads(h.request(url, 'GET')[1])
    query = Account.query(Account.email == email)
    account = query.get()
    if query.count() != 0:
        key = account.key
        return json_success({"uuid": key.integer_id()})

    session['gplus_id'] = gplus_id
    session['username'] = name
    account = Account(name=name,
                      email=email,
                      gplusId=gplus_id,
                      accessToken=access_token,
                      loggedIn=True)
    key = account.put()
    session['userId'] = key.integer_id()
    return json_success({"uuid": key.integer_id()})
コード例 #2
0
def MakeUserAccount(UserID, Users):
    """
    UserID : <int>
    Users : <dict> 
    Returns account (Account object)
    """
    #Make a Account and for the scenario,
    #Assume every User has 10 equipment and 10000 tokens
    user = Account(UserID)
    user.save_Equipment(100)
    user.save_Balance(10000)
    #stor user object in 'Users' dictionary
    Users[UserID] = user
    #create Transaction data to store in the block
    trx = Transaction(sender=AdminID,
                      receiver=UserID,
                      amount=10000,
                      obj=['Equipment', 10])

    return user, trx
コード例 #3
0
def api_login():
    logging.info("api_login Type " + request.method)
    if request.method == 'POST':
        name = request.args.get("name", "")
        email = request.args.get("email", "")
        logging.info("name " + name + " email " + email)

# once store token verified send a request for credential for gplus
    access_token = request.args.get("storeToken", "")
    gplus_id = request.args.get("id", "")
    logging.info(access_token)
    url = ("https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=%s" %
           access_token)
    h = httplib2.Http()
    result = json.loads(h.request(url, 'GET')[1])
    query = Account.query(Account.email == email)
    account = query.get()
    if query.count() != 0:
        logging.info("Account Already Exists")
        key = account.key
        return json_success({"uuid": key.integer_id()})

    logging.info("first time logging in")
    session['gplus_id'] = gplus_id
    session['username'] = name
    account = Account(name=name,
                      email=email,
                      gplusId=gplus_id,
                      accessToken=access_token,
                      loggedIn=True)
    key = account.put()
    session['userId'] = key.integer_id()
    return json_success({"uuid": key.integer_id()})

    if request.method == 'GET':
        return page_not_found(404)
コード例 #4
0
AdminID = 999
MinerID = 111

UserID = [random.randint(200, 800)
          for i in range(10)]  #Create  10 Users randomly
Users = {}  #Store User object Userid : <class>account
size = 10
PC = {}  #Store every Private channel in storage

#Total Property in Server
Total_Token = 10000000  # 10000000 tokens
Total_Equipment = 1000  # 1000 equipments
# Total_ETC = 10000

#Creating Admin account, Setting primary numbers of Tokens and Equipments
Admin = Account(AdminID)
Admin.save_Equipment(1000)
# Admin.save_ETC(10000)
Admin.save_Balance(10000000)

Transactions_que = []  #Temporary Storage for new transactions
# Temporary_que = [] #The transaction will wait till six blocks added

PrivateChannel_Network = np.zeros(
    (size, size))  #Graph of PrivateChannel among users
PrivateChannel_Network[:][:] = 999
for i in range(size):
    PrivateChannel_Network[i][i] = 0

#First Transaction of the server is setting the primary properties in Admin account
Base_Trx = Transaction(sender=000,
コード例 #5
0
def login():
    if request.method == 'POST':
        name = request.args.get("name", "")
        email = request.args.get("email", "")
        logging.info("name " + name + " email " + email)
        account = Account.query(Account.email == email).get()
        #create a state string
        state = ''
        for x in xrange(32):
            state += random.choice(string.ascii_uppercase + string.digits)
    session['state'] = state
    storeToken = request.args.get("storeToken", "")

    #verify store token with google servers

    try:
        oauth_flow = flow_from_clientsecrets('client_secrets.json', scope='')
        oauth_flow.redirect_uri = 'postmessage'
        credentials = oauth_flow.step2_exchange(storeToken)
    except FlowExchangeError:
        logging.info("error with Oauth")
        return page_not_found(404)

# once store token verified send a request for credential for gplus
    access_token = credentials.access_token
    logging.info(access_token)
    url = ("https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=%s" %
           access_token)
    h = httplib2.Http()
    result = json.loads(h.request(url, 'GET')[1])
    gplus_id = credentials.id_token['sub']
    stored_credentials = session.get('credentials')
    stored_gplus_id = session.get('gplus_id')

    if account is not None:
        logging.info("User already logged in")
        account = Account.query(Account.email == email).get()
        account.loggedIn = True
        account.put()
        session['credentials'] = credentials
        session['gplus_id'] = gplus_id
        session['username'] = account.name
        session['userId'] = account.key.integer_id()
        session['loggedIn'] = True

    else:
        logging.info("first time logging in")
        session['credentials'] = credentials
        session['gplus_id'] = gplus_id
        session['username'] = name
        account = Account(name=name,
                          email=email,
                          gplusId=gplus_id,
                          accessToken=access_token,
                          loggedIn=True)
        key = account.put()
        session['userId'] = key.integer_id()
        session['loggedIn'] = True
    return '200'

    if request.method == 'GET':
        return page_not_found(404)