def registerUser(self, username, password, email, given_name, family_name, zip_code, timestamp): u = Cognito(self.USER_POOL_ID, self.CLIENT_ID) u.add_base_attributes(email=email, given_name=given_name, family_name=family_name) u.add_custom_attributes(zip_code=zip_code, timestamp=timestamp) u.register(username, password) return u
def register(new_user): new_user = model_to_dict( new_user) if not type(new_user) == dict else new_user pool_id = settings.COGNITO_USER_POOL_ID app_id = settings.COGNITO_APP_ID cog = Cognito(pool_id, app_id) cog.add_base_attributes(email=new_user['email']) cog.add_custom_attributes(is_staff=str(int(new_user['is_staff'])), is_superuser=str(int(new_user['is_superuser']))) cog.register(new_user['email'], new_user['password'])
def register(request, new_user): pool_id = settings.COGNITO_USER_POOL_ID app_id = settings.COGNITO_APP_ID cog = Cognito(pool_id, app_id) cog.add_base_attributes(email=new_user['username']) cog.add_custom_attributes( is_staff=str(int(new_user['is_staff'])), is_superuser=str(int(new_user['is_superuser'])) ) cog.register(new_user['username'], new_user['password'])
def lambda_handler(event, context): print("Got event \n" + json.dumps(event, indent=2)) p_body = parse_qs(event['body']) #print str(p_body['user'][0]) #print str(p_body['tenant_id'][0]) #print str(p_body['user_id'][0]) #print p_body['email_addr'][0] print event cognito = boto3.client('cognito-idp', region_name='us-east-2') if p_body['user'] != None: user = p_body['user'][0] email_add = p_body['email_addr'][0] t_id = p_body['tenant_id'][0] u_id = p_body['user_id'][0] passwd = gen_random_string(8) passwd = passwd + "!!" + str(random.randint(0, 100)) print passwd u = Cognito(USER_POOL_ID, CLIENT_ID) u.add_base_attributes(email=email_add) u.add_custom_attributes(tenantId=t_id, userId=u_id, lib_view='*') u.register(user, passwd) response = cognito.admin_confirm_sign_up(UserPoolId=USER_POOL_ID, Username=user) u = Cognito(USER_POOL_ID, CLIENT_ID, username=user) u.admin_authenticate(password=passwd) print "getting refresh token" return { 'statusCode': 200, 'headers': { 'Content-Type': 'application/json' }, 'body': json.dumps({'refresh_token': u.refresh_token}) } else: return { 'statusCode': 403, 'headers': { 'Content-Type': 'application/json' }, 'body': json.dumps({'message': 'invalid user input'}) }
#!/usr/bin/env python # -*- coding: utf-8 -*- from getpass import getpass from warrant import Cognito from settings import * #pool_id = 'us-east-1_KeZCl0wwt' #client_id = '2lup6diqlr7usgsn26sqm9vd6c' name = input('Your Name: ') email = input('Your Email: ') secret = input('Code Sprint Secret: ') u = Cognito(pool_id, client_id) u.add_base_attributes(email=email, name=name) u.add_custom_attributes(secret=secret) u.register(email, getpass(prompt='Password: ')) print("verification email will come from [email protected]")
def sign(): signinform = SigninForm(prefix="signin") signupform = SignupForm(prefix="signup") if request.method == 'POST': form = request.form pprint.pprint(form) if request.form['btn'] == 'Signin': # session["active_panel"] = "login-form-link" if signinform.validate_on_submit(): try: auth_cognito = Cognito( cognito_userpool_id, cognito_client_id, user_pool_region=cognito_userpool_region, username=form['signin-username']) auth_cognito.authenticate(password=form['signin-password']) decoded_token = cognitojwt.decode(auth_cognito.id_token, cognito_userpool_region, cognito_userpool_id, cognito_client_id) user = auth_cognito.get_user() credit = user._data['custom:credit'] # except NotAuthorizedException as e: # flash(e.response['Error']['Message']) # return redirect(request.referrer) except Exception as e: if hasattr(e, 'message'): msg = e.message else: msg = str(e) flash(msg, 'error') return redirect(request.referrer) else: flash("Signin Successfully!") user = User() user.id = decoded_token["cognito:username"] user.credit = credit session['credit'] = credit session['expires'] = decoded_token["exp"] session['refresh_token'] = auth_cognito.refresh_token session['id_token'] = auth_cognito.id_token session['access_token'] = auth_cognito.access_token login_user(user, remember=True) next_url = request.args.get('next', 'index').strip("/") print("next_url:{}".format(next_url)) return redirect(url_for(next_url)) else: flash(signinform.errors) return redirect(request.referrer) elif request.form['btn'] == 'Signup': # session["active_panel"] = "register-form-link" if signupform.validate_on_submit(): try: u = Cognito(cognito_userpool_id, cognito_client_id, cognito_userpool_region) u.add_base_attributes(email=form['signup-email']) u.add_custom_attributes(credit='0') u.register(form['signup-username'], form['signup-password']) except Exception as e: if hasattr(e, 'message'): msg = e.message else: msg = str(e) flash(msg, 'error') else: pprint.pprint(session) flash("Finish the signup by confirm link in mailbox") else: flash(signupform.errors, "error") return redirect(request.referrer) return render_template('sign.html', signinform=signinform, signupform=signupform)
def sign_up(): if request and request.method == "POST": resp, err = GetUserPasswordFromAuthHeader(request) if err: res = GetResponseObject(err, 401) log.error(res) return res username, password = resp[0], resp[1] if request.data: body = json.loads(request.data) resp, err = ValidateRegistrationData(body) if err: res = GetResponseObject(err, 400) log.error(res) return res try: body["username"] = username # Save user record in Cognito user = Cognito(user_pool_id=COGNITO_USER_POOL_ID, client_id=COGNITO_APP_CLIENT_ID, user_pool_region=AWS_REGION) user.add_base_attributes(email=username, given_name=body["firstName"], family_name=body["lastName"], phone_number=body["phone"], address=body["address"]) user.add_custom_attributes(usertype=body["userType"], area=body["area"], city=body["city"]) resp = user.register(username, password) # log.info("Cognito response:" + str(resp)) user.admin_confirm_sign_up() body["uuid"] = resp['UserSub'] body["email"] = username # log.info(json.dumps(body, indent=2)) # saving user record in db # filename, err = upload_image(request) # if err: # raise Exception(err) # body["image"] = "https://" + settings.CLOUD_FRONT_URL + "/" + filename SaveInDB(body) data = "User registered successfully !!!" res = GetResponseObject(data, 200, True) return res except ClientError as e: if e.response['Error']['Code'] == 'UsernameExistsException': data = f"{username} username already exists !!!" log.error(data) res = GetResponseObject(data) return res data = f"Error: {str(e)}" log.error(data) res = GetResponseObject(data) return res except Exception as e: user = Cognito( \ user_pool_id=COGNITO_USER_POOL_ID, \ client_id=COGNITO_APP_CLIENT_ID, \ user_pool_region=AWS_REGION, username=username) user.authenticate(password=password) resp = client.delete_user(AccessToken=user.access_token) log.info( f"Deleting user due to error while signing up: {resp}") data = f"Error while registering user: {str(e)}" log.error(data) res = GetResponseObject(data) return res else: data = f"Empty request body !!!!" res = GetResponseObject(data, 400) log.error(err) return res else: data = f"Invalid request method, method {request.method} not supported !!!" res = GetResponseObject(data, 405) log.error(res) return res
def sign_up(): if request and request.method == "POST": resp, err = GetUserPasswordFromAuthHeader(request) if err: res = GetResponseObject(err, 401) log.error(res) return res username, password = resp[0], resp[1] if request.data: body = json.loads(request.data) resp, err = ValidateRegistrationData(body) if err: res = GetResponseObject(err, 400) return res try: body["username"] = username # Save user record in Cognito user = Cognito(user_pool_id=COGNITO_USER_POOL_ID, client_id=COGNITO_APP_CLIENT_ID, user_pool_region=AWS_REGION) user.add_base_attributes( email=username, given_name=body["firstName"], family_name=body["lastName"] ) print(username, password) user.add_custom_attributes( yoyoPoints=body["yoyoPoints"], admin=body["admin"] ) resp = user.register(username, password) log.info("Cognito response:" + str(resp)) user.admin_confirm_sign_up() body["uuid"] = resp['UserSub'] # log.info(json.dumps(body, indent=2)) data = "User registered successfully !!!" res = GetResponseObject(data, 200, True) return res except ClientError as e: print(f"Error: {str(e)}") if e.response['Error']['Code'] == 'UsernameExistsException': data = f"{username} username already exists !!!" log.error(data) res = GetResponseObject(data) return res except Exception as e: user = Cognito( user_pool_id=COGNITO_USER_POOL_ID, client_id=COGNITO_APP_CLIENT_ID, user_pool_region=AWS_REGION, username=username) user.authenticate(password=password) resp = client.delete_user(AccessToken=user.access_token) log.info( f"Deleting user due to error while signing up: {resp}") data = f"Error while registering user: {str(e)}" log.error(data) res = GetResponseObject(data) return res else: data = f"Empty request body !!!!" res = GetResponseObject(data, 400) log.error(err) return res else: data = f"Invalid request method, method {request.method} not supported !!!" res = GetResponseObject(data, 405) log.error(res) return res