def facebook_authorized(): """Authorize facebook login.""" data = request.get_json() session['facebook_token'] = {"Type": data['token_type'], "access_token": data['accessToken']} graph = f.GraphAPI(data['accessToken']) profile = graph.get_object('me', **{'fields': 'id, name, email, picture'}) data.clear() data = dict( photo=profile['picture']['data']['url'], name=profile['name'], social_id=profile['id'], social="facebook", password=None, email=profile.get('email'), fileStorage_key=random_string(10), ) user_in_db = User.get_user_by_social_id(profile['id']) if user_in_db: token = Auth.generate_token(user_social.dump(user_in_db)["id"]) return token_return(token, data.get('name'), data.get('email')) if data['email']: login_success('LoginSuccess.html', email=data.get('email'), name=data.get('name')) create_profile(data) profile_info = profile_schema.dump(Profiles.get_profile(data.get('social_id'))) data['fileStorage_key'], data['profile_id'] = random_string(10), profile_info.get('id') user = User(data) user.save() create_all_default_contract(user.id) return token_return(Auth.generate_token(user_schema.dump(user)['id']), data.get('name'), data.get('email'))
def register(): """ Create User Function """ data, error = validate_data(user_schema, request, return_dict=False) if error: return custom_response(data, 400) if User.get_user_by_email(data.get('email')): return custom_response("Email already exist", 400) data.update({'fileStorage_key': random_string(10), 'profile_id': create_profile(data)}) new_user = User(data) new_user.save() keys = random_int() KeyResetPassword(dict(keys=keys, user_id=new_user.id)).save() generate_basic_stars(user_id=new_user.id) if data.get('services'): generate_condition_globals(new_user.id) if data.get('user_type') == USER_ARTIST_BEATMAKER: create_all_default_contract(new_user.id) data['services']['user_id'] = new_user.id data['services']['galleries'] = check_galleries_files(request, new_user) data['services']['materials_id'] = create_new_materials_for_new_services() new_service = Services(data['services']) new_service.save() generate_basic_stars(service_id=new_service.id) first_service('FirstService.html', data["email"], data["name"], data['services']["title"]) login_success('LoginSuccess.html', data["email"], data["name"], keys) return token_return(Auth.generate_token(new_user.id), data.get('name'), data.get('email'))
def callback(): """ My Callback function for google login and register """ google = OAuth2Session(Production.CLIENT_ID, token=request.get_json()) resp = google.get(Production.USER_INFO) if resp.status_code == 200: user_data, data = resp.json(), {} user_in_db = User.get_user_by_social_id(user_data['id']) if user_in_db: token = Auth.generate_token(user_in_db.id) _user_profile = Profiles.get_profile(social_id=user_data['id']) return token_return(token, user_in_db.name, user_in_db.email, _user_profile.photo) if User.get_user_by_email(user_data['email']): return custom_response("Email already exist", 400) data.update({ 'social': "google", 'name': user_data['family_name'], 'social_id': user_data['id'], 'fileStorage_key': random_string(10), 'email': user_data['email'], 'photo': user_data['picture'] }) user = User(data) create_profile(data) user.save() create_all_default_contract(user.id) token = Auth.generate_token(user.id) generate_basic_stars(user_id=user.id) login_success('LoginSuccess.html', email=data['email'], name=data["name"]) return token_return(token, data.get('name'), data.get('email'), data.get('photo')) return custom_response("Unauthorized, Could not fetch your information.", 400)