def setUp(self): create_user("1") self.args = { "user_id": "1", "books": [ { "name": "Book", "author": "Barney", "category": "Romance", "pages": 432, "pages_read": 234, "snippet": "daosdaopskdaopsdksaopsk", "rate": 3.2, "cover_url": "", "notes": [{"text": "rdaopsdkaopsdk"}], }, { "name": "Book", "pages": 432, "author": "Barney", "category": "Romance", "pages_read": 234, "snippet": "daosdaopskdaopsdksaopsk", "rate": 3.2, "cover_url": "", "notes": [{"text": "rdaopsdkaopsdk"}, {"text": "kdoaskdoa"}], }, ], }
def setUp(self): user = create_user("098") book = create_book("Clean Code", "Robert", "Computer") self.user_book = UserBooks(user, book) db.session.add(self.user_book) db.session.commit() self.args = {"user_id": user.user_id}
def setUp(self): self.user = create_user("312") book = create_book("Clean Code123", "Robert", "Computer") user_book = UserBooks(self.user, book) db.session.add(user_book) db.session.commit() self.args = {"user_id": self.user.user_id, "book_name": book.name}
def setUp(self): book = create_book("Clean Code1", "Roberto", "Computer") user = create_user("23123") self.user_book = create_user_book(user, book) self.args['book_id'] = book.id self.args['user_id'] = user.user_id self.args['text'] = "Teste"
def setUp(self): book = create_book("Clean Code1", "Roberto", "Computer") user = create_user("23123") self.user_book = create_user_book(user, book) self.args["book_id"] = book.id self.args["user_id"] = user.user_id self.args["text"] = "Teste"
def setUp(self): user = create_user("098") book = create_book("Clean Code", "Robert", "Computer") self.user_book = UserBooks(user, book) db.session.add(self.user_book) db.session.commit() self.args = {'user_id': user.user_id}
def setUp(self): self.user = create_user("87656") self.args = { "name": "Rafael2", "auth_token": "123", "auth_token_secret": "3123123", "user_id": "87656" }
def handle_user(self, user): self.user = create_user(user) apartment_list = get_apartment_list(self.user) json_data = convert_to_json(apartment_list) #print(self.user.gender) for apart in apartment_list: print(apart.address) #print(apartment_list[0].address) return json.dumps(json_data)
def handle_user(self,user): self.user = create_user(user) apartment_list = get_apartment_list(self.user) json_data = convert_to_json(apartment_list) #print(self.user.gender) for apart in apartment_list: print(apart.address) #print(apartment_list[0].address) return json.dumps(json_data)
def setUp(self): create_user("1") self.args = { "user_id": "1", "books": [{ "name": "Book", "author": "Barney", "category": "Romance", "pages": 432, "pages_read": 234, "snippet": "daosdaopskdaopsdksaopsk", "rate": 3.2, "cover_url": "", "notes": [{ "text": "rdaopsdkaopsdk" }] }, { "name": "Book", "pages": 432, "author": "Barney", "category": "Romance", "pages_read": 234, "snippet": "daosdaopskdaopsdksaopsk", "rate": 3.2, "cover_url": "", "notes": [{ "text": "rdaopsdkaopsdk" }, { "text": "kdoaskdoa" }] }] }
def setUp(self): user = create_user("2131") book = create_book("Clean Code123", "Robert", "Computer") self.user_book = UserBooks(user, book) db.session.add(self.user_book) db.session.commit() self.args = { "user_id": user.user_id, "pages_read": 123, "pages": 321, "book_id": self.user_book.id, "notes": [{"id": "1", "text": "rafael"}], }
def oauthroute(): state = request.args["state"] print(state) if not verify_helper.state_exists(client, state): return {"Error": "The state returned was incorrect."}, 400 token = oauth.fetch_token('https://accounts.google.com/o/oauth2/token', authorization_response=request.url, client_secret=client_secret) req = requests.Request() id_info = id_token.verify_oauth2_token(token['id_token'], req, client_id) # https://google-auth.readthedocs.io/en/latest/reference/google.oauth2.id_token.html # Straight from the documentation for this function. if id_info['iss'] not in [ 'accounts.google.com', 'https://accounts.google.com' ]: return { "Error": "The JWT is invalid. The issuer is listed as: " + id_info["iss"] }, 400 # Need to create the user account and store the sub value of their jwt as the user's unique_id. # Skip account creation if the user already has an account. We only need to display their information again. if not helper.sub_matches_user(client, id_info["sub"]): payload = {"unique_id": id_info["sub"], "email": id_info["email"]} # helper.create_user(client, request, {"unique_id": id_info["sub"]}) helper.create_user(client, request, payload) verify_helper.delete_state(client, state) return render_template("user_info.html", token=token['id_token'], sub=id_info['sub'])
def setUp(self): user = create_user("2131") book = create_book("Clean Code123", "Robert", "Computer") self.user_book = UserBooks(user, book) db.session.add(self.user_book) db.session.commit() self.args = { "user_id": user.user_id, "pages_read": 123, "pages": 321, "book_id": self.user_book.id, "notes": [{ "id": "1", "text": "rafael" }] }
def gconnect(): # Validate state token if request.args.get('state') != login_session['state']: response = make_response(json.dumps('Invalid state parameter.'), 401) response.headers['Content-Type'] = 'application/json' return response # Obtain authorization code, now compatible with Python3 request.get_data() code = request.data.decode('utf-8') try: # Upgrade the authorization code into a credentials object oauth_flow = flow_from_clientsecrets('client_secrets.json', scope='') oauth_flow.redirect_uri = 'postmessage' credentials = oauth_flow.step2_exchange(code) except FlowExchangeError: response = make_response( json.dumps('Failed to upgrade the authorization code.'), 401) response.headers['Content-Type'] = 'application/json' return response # Check that the access token is valid. access_token = credentials.access_token url = ('https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=%s' % access_token) # Submit request, parse response - Python3 compatible h = httplib2.Http() response = h.request(url, 'GET')[1] str_response = response.decode('utf-8') result = json.loads(str_response) # If there was an error in the access token info, abort. if result.get('error') is not None: response = make_response(json.dumps(result.get('error')), 500) response.headers['Content-Type'] = 'application/json' # Verify that the access token is used for the intended user. gplus_id = credentials.id_token['sub'] if result['user_id'] != gplus_id: response = make_response( json.dumps("Token's user ID doesn't match given user ID."), 401) response.headers['Content-Type'] = 'application/json' return response # Verify that the access token is valid for this app. if result['issued_to'] != CLIENT_ID: response = make_response( json.dumps("Token's client ID does not match app's."), 401) response.headers['Content-Type'] = 'application/json' return response stored_access_token = login_session.get('access_token') stored_gplus_id = login_session.get('gplus_id') if stored_access_token is not None and gplus_id == stored_gplus_id: response = make_response( json.dumps('Current user is already connected.'), 200) response.headers['Content-Type'] = 'application/json' return response # Store the access token in the session for later use. login_session['access_token'] = access_token login_session['gplus_id'] = gplus_id # Get user info userinfo_url = "https://www.googleapis.com/oauth2/v1/userinfo" params = {'access_token': access_token, 'alt': 'json'} answer = requests.get(userinfo_url, params=params) data = answer.json() login_session['username'] = data['name'] login_session['picture'] = data['picture'] login_session['email'] = data['email'] # see if user exists, if it doesn't make a new one user_id = get_user_id(login_session['email']) if not user_id: user_id = create_user(login_session) login_session['user_id'] = user_id output = '' output += '<h1>Welcome, ' output += login_session['username'] output += '!</h1>' output += '<img src="' output += login_session['picture'] output += ' " style = "width: 300px; height: 300px;border-radius: 150px;-webkit-border-radius: 150px;-moz-border-radius: 150px;"> ' flash("you are now logged in as %s" % login_session['username']) return output
def setUp(self): self.user = create_user("87656") self.args = {"name" : "Rafael2" , "auth_token" : "123", "auth_token_secret" : "3123123", "user_id" : "87656"}
def setUp(self): create_user("12324576918") self.args = {"user_id" : "12324576918"}
def setUp(self): create_user("12324576918") self.args = {"user_id": "12324576918"}
def facebook_login(): """Implement Oauth 2.0 login method with user's Facebook account""" if request.args.get('state') != login_session['state']: response = make_response(json.dumps('Invalid state parameter.'), 401) response.headers['Content-Type'] = 'application/json' return response access_token = request.data print "access token received %s " % access_token app_id = facebook_client_secrets['web']['app_id'] app_secret = facebook_client_secrets['web']['app_secret'] url = 'https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=%s&client_secret=%s&fb_exchange_token=%s' % ( app_id, app_secret, access_token) h = httplib2.Http() result = h.request(url, 'GET')[1] # Use token to get user info from API # userinfo_url = "https://graph.facebook.com/v2.5/me" # strip expire tag from access token token = result.split("&")[0] url = 'https://graph.facebook.com/v2.5/me?%s&fields=name,id,email' % token h = httplib2.Http() result = h.request(url, 'GET')[1] print result # print "url sent for API access:%s"% url # print "API JSON result: %s" % result data = json.loads(result) login_session['provider'] = 'facebook' login_session['username'] = data["name"] login_session['email'] = data["email"] login_session['facebook_id'] = data["id"] # The token must be stored in login_session in order to properly logout # let's strip out the information before the equals sign in our token stored_token = token.split("=")[1] login_session['access_token'] = stored_token # Get user picture url = 'https://graph.facebook.com/v2.5/me/picture?%s&redirect=0&height=200&width=200' % token h = httplib2.Http() result = h.request(url, 'GET')[1] data = json.loads(result) login_session['picture'] = data["data"]["url"] # see if user exists user_id = get_user_id(login_session['email']) if not user_id: user_id = create_user(login_session) login_session['user_id'] = user_id output = '' output += '<h1>Welcome, ' output += login_session['username'] output += '!</h1>' output += '<img src="' output += login_session['picture'] output += ' " style = "width: 300px; height: 300px;border-radius: 150px;-webkit-border-radius: 150px;-moz-border-radius: 150px;"> ' flash("You are now signed in as %s" % login_session['username']) return output
def login(self, uid, access_token): """ Login routine. From FacebookRequest: login(facebook_uid """ self.sns = 'fb' ukey = '%s_%s' % (self.sns, uid) u = helper.from_cache(ukey) if not u: u = helper.get_user_by_key(ukey, False) #memcache=False if not u: graph = facebook.GraphAPI(access_token) profile = graph.get_object('me') u = helper.create_user(ukey, profile['name'], profile.get('email', None), False) #save=False if not u: logging.error( 'FacebookRequest.login: helper.create_user failed') self.redirect_with_msg( 'Server in maintenance, please try later, thank you.') self.get = self.post = (lambda *args: None) return u.access_token = access_token u.save() logging.debug('FacebookRequest.login: New User %s saved' % ukey) else: now = datetime.utcnow() u._cache_time = now if helper.to_cache( ukey, u, helper.PLAYER_CACHE_SECS ): #2 hours, if memcache fails, do not task/dau or send_email # if u.lastime.day != now.day or u.lastime.month != now.month: # taskqueue.add(url='/task/dau',params={'usr':ukey,'act':'login'}) taskqueue.add(url='/task/dau', params={ 'usr': ukey, 'act': 'login' }) if ukey not in [ 'fb_669391906', 'fb_1464710918', 'fb_1842536962', 'fb_1831016858' ]: helper.send_email( 'Login SuiComics: %s(%s) @ %s' % (u.name, ukey, now), 'OK') else: helper.send_email( 'Login SuiComics: %s(%s) @ %s' % (u.name, ukey, now), 'OK - to remove this') else: #got user from memcache if u.access_token != access_token: u.access_token = access_token u.save() logging.debug( 'FacebookRequest.login: access_token updated while %s still in memcache' % ukey) elif hasattr(u, '_cache_time'): if (datetime.utcnow() - u._cache_time).seconds >= 3600: u._cache_time = datetime.utcnow() helper.to_cache(ukey, u, helper.PLAYER_CACHE_SECS) if self.request.headers.get('User-Agent', '').find('MSIE') >= 0: #logging.debug('addHeader P3P for MSIE') #self.response.headers.add_header('P3P','CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"') self.response.headers.add_header('P3P', 'CP="SuiComics"') args = get_session_from_cookie(self.request.cookies) if not args or args['uid'] != ukey: put_cookie(self.response.headers, ukey, u.token, self.sns) self.user = u self.tempvars = { 'user': u, 'sns': 'fb', 'login': True, 'uname': u.name, 'onFacebook': True } if self.request.get('ref') == 'bookmarks': c = self.request.get('count') if c != '0': helper.clear_fb_count(uid)
def initialize(self, request, response): """ Authenticate through Google account. """ webapp.RequestHandler.initialize(self, request, response) from google.appengine.api import users user = users.get_current_user() if not user: logging.debug( 'GoogleRequest.initialize: not login, redirect to /gg') self.redirect(users.create_login_url("/gg/home")) self.get = (lambda *args: None) self.post = (lambda *args: None) else: #user logged in google account,check our cookie sns = 'gg' #Google: how to make use of GMail contact, chat etc? via OAuth uid = '%s_%s' % (sns, user.user_id()) logging.debug( 'GoogleRequest.initialize: %s visit via Google, try login' % uid) su = helper.from_cache(uid) if not su: su = helper.get_user_by_key(uid, False) #no memcache if su is None: logging.debug( 'GoogleRequest.initialize: New user, try create') em = user.email() name = em[:em.find('@')] su = helper.create_user(uid, name, em) #auto cached if successful if su is None: logging.error( 'GoogleRequest.initialize: create_user(%s,%s,%s) failed' % (uid, name, em)) self.response.out.write( 'Server in maintenance, please come back later. Thank you.' ) self.get = self.post = ( lambda *args: None) #stop calling request handler return else: logging.debug( 'GoogleRequest.initialize: new session today, try cache' ) su._cache_time = datetime.utcnow() if helper.to_cache(uid, su, helper.PLAYER_CACHE_SECS): logging.debug( 'GoogleRequest.initialize: Memcached, task dau and send email to admin' ) taskqueue.add(url='/task/dau', params={ 'usr': uid, 'act': 'login' }) #if uid not in ['gg_109722387073140662444','gg_108772542023352813713']: helper.send_email( 'Login SuiComics: %s(%s) @ %s' % (su.name, uid, datetime.utcnow()), 'OK') else: #in memcache logging.debug('GoogleRequest.initialize: in memcache, revisit') if hasattr(su, '_cache_time'): if (datetime.utcnow() - su._cache_time).seconds >= 3600: su._cache_time = datetime.utcnow() helper.to_cache(uid, su, helper.PLAYER_CACHE_SECS) self.tempvars = { 'user': su, 'sns': 'gg', 'login': True, 'uname': su.name, 'onFacebook': False } args = get_session_from_cookie(self.request.cookies) if not args: put_cookie(self.response.headers, uid, su.token, sns) #a generated random token else: self.tempvars.update(args) #['sns','uid','token'] self.sns = sns self.user = su
def setUp(self): book = create_book("Clean Code1", "Roberto", "Computer") user = create_user("kdpao-") self.user_book = create_user_book(user, book) note = create_note(self.user_book) self.args = {"note_id" : note.id, "text" : "daskdopaskdpoaskdpoaks"};
def setUp(self): book = create_book("Clean Code1", "Roberto", "Computer") user = create_user("312-0asd") self.user_book = create_user_book(user, book) self.note = create_note(self.user_book) self.args = {"note_id" : self.note.id}
def setUp(self): book = create_book("Clean Code1", "Roberto", "Computer") user = create_user("312-0asd") self.user_book = create_user_book(user, book) self.note = create_note(self.user_book) self.args = {"note_id": self.note.id}
def setUp(self): book = create_book("Clean Code1", "Roberto", "Computer") user = create_user("kdpao-") self.user_book = create_user_book(user, book) note = create_note(self.user_book) self.args = {"note_id": note.id, "text": "daskdopaskdpoaskdpoaks"}
def google_login(): """Implement Oauth 2.0 login method with user's Google account""" # Validate state token if request.args.get('state') != login_session['state']: response = make_response(json.dumps('Invalid state parameter.'), 401) response.headers['Content-Type'] = 'application/json' return response # Obtain authorization code, now compatible with Python3 request.get_data() code = request.data.decode('utf-8') try: # Upgrade the authorization code into a credentials object oauth_flow = flow_from_clientsecrets( os.path.join(app_path, 'client_secrets.json'), scope='') oauth_flow.redirect_uri = 'postmessage' credentials = oauth_flow.step2_exchange(code) except FlowExchangeError: response = make_response( json.dumps('Failed to upgrade the authorization code.'), 401) response.headers['Content-Type'] = 'application/json' return response # Check that the access token is valid. access_token = credentials.access_token url = ('https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=%s' % access_token) # Submit request, parse response - Python3 compatible h = httplib2.Http() response = h.request(url, 'GET')[1] str_response = response.decode('utf-8') result = json.loads(str_response) # If there was an error in the access token info, abort. if result.get('error') is not None: response = make_response(json.dumps(result.get('error')), 500) response.headers['Content-Type'] = 'application/json' # Verify that the access token is used for the intended user. gplus_id = credentials.id_token['sub'] if result['user_id'] != gplus_id: response = make_response( json.dumps("Token's user ID doesn't match given user ID."), 401) response.headers['Content-Type'] = 'application/json' return response # Verify that the access token is valid for this app. if result['issued_to'] != google_client_secrets['web']['client_id']: response = make_response( json.dumps("Token's client ID does not match app's."), 401) response.headers['Content-Type'] = 'application/json' return response stored_access_token = login_session.get('access_token') stored_gplus_id = login_session.get('gplus_id') if stored_access_token is not None and gplus_id == stored_gplus_id: response = make_response(json.dumps( 'Current user is already connected.'), 200) response.headers['Content-Type'] = 'application/json' return response # Store the access token in the session for later use. login_session['access_token'] = access_token login_session['gplus_id'] = gplus_id # Get user info userinfo_url = "https://www.googleapis.com/oauth2/v2/userinfo" params = {'access_token': access_token, 'alt': 'json'} answer = requests.get(userinfo_url, params=params) data = answer.json() login_session['username'] = data['name'] login_session['picture'] = data['picture'] login_session['email'] = data['email'] login_session['provider'] = 'google' # see if user exists, if it doesn't make a new one user_id = get_user_id(login_session['email']) if not user_id: user_id = create_user(login_session) login_session['user_id'] = user_id output = '' output += '<h1>Welcome, ' output += login_session['username'] output += '!</h1>' output += '<img src="' output += login_session['picture'] output += ' " style = "width: 300px; height: 300px;border-radius: 150px;-webkit-border-radius: 150px;-moz-border-radius: 150px;"> ' flash("You are now signed in as %s" % login_session['email']) return output
def signup(): if request.method == 'POST': message = helper.create_user(request) return render_template("app/index.html", alert=message) else: return page_not_found(404)