def confirm_user(username, con_code): if not username: raise ValidationError("error.confirm_user.invalid_username") if not con_code: raise ValidationError("error.confirm_user.invalid_confirmation_code") # here I am using warrant library because I found it easier than boto3 cognito = Cognito(cognito_userpool_id, cognito_app_client_id) try: cognito.confirm_sign_up(confirmation_code=con_code, username=username) except Exception as e: raise ValidationError("error.confirm_user.failed")
def confirm_signup(username): if request.method == 'POST': code = request.form['confirm_code'] u = Cognito(USER_POOL_ID, CLIENT_ID, REGION, username=username, access_key='dummy_not_used', secret_key='dummy_not_used') try: u.confirm_sign_up(code, username=username) except ClientError as e: flash(e.response.get('Error').get('Message')) return redirect(url_for('confirm_signup', username=username)) return redirect(url_for('login', username=username)) return render_template('confirm_signup.html')
def post(self): """Confirm user registration""" json_data = request.get_json(force=True) email = json_data['email'] code = json_data['code'] try: u = Cognito(cognitoUserPoolId, cognitoUserPoolClientId, awsRegion) u.confirm_sign_up(code, username=email) return ReturnDocument(email, "success").asdict() except ClientError as err: return ReturnDocument(err.__str__(), "error").asdict()
def verification(): if 'username' in session: username = session['username'] if request.method == 'POST': cognito = Cognito(user_pool_id=cognito_userpool_id, client_id=cognito_app_client_id, username=username) try: cognito.confirm_sign_up( confirmation_code=request.form['vcode']) return redirect(url_for('welcome')) except Exception as e: print(e) error = 'Unable to verify, please try again' return render_template('signup.html', error=error) return render_template("verification.html") else: return redirect(url_for('login'))
def confirm_sign_up(): data = request.get_json() email = data.get("username", None) password = data.get("password", None) code = data.get("code", None) if email is None or password is None or code is None: return "Must specify username, password, and confirmation code", 422 u = Cognito(userPoolId, clientId, user_pool_region=region, access_key=access_key, secret_key=secret_key) try: u.confirm_sign_up(code, username=email) except Exception: return jsonify({"error": "invalid code"}), 401 return login_email(email, password)
def verifyUser(self, username, verificationNumber): u = Cognito(self.USER_POOL_ID, self.CLIENT_ID) u.confirm_sign_up(verificationNumber, username=username) return u
def confirm_sign_up(username, verification_code): u = Cognito(pool_id, app_client_id) u.confirm_sign_up(verification_code, username=username)
#!/usr/bin/env python3 import boto3 from common.config import config from common.colourprint import Printer from warrant import Cognito props = config() cognito = Cognito(props['USER_POOL_ID'], props['CLIENT_ID'], user_pool_region='eu-west-1') client = boto3.client('cognito-idp') print('Activating user {}'.format(props['USERNAME'])) cognito.confirm_sign_up(props['VERIFICATION_CODE'], username=props['USERNAME']) Printer.success()